小编Dev*_*Dev的帖子

在WHERE子句中添加LIKE运算符(动态SQL)

我正在使用Dynamic SQL创建一个将要执行的'SELECT'SQL语句.在我正在创建的SQL语句中,我想使用'LIKE'运算符,但因为它使用了引号'',它与'SELECT'语句开头使用的引号相冲突.

SET @sql = 'SELECT * FROM LogTable WHERE Application LIKE ' + @ApplicationName + ' ;'
Run Code Online (Sandbox Code Playgroud)

假设'@ApplicationName = TestApp',上面的动态SQL'@sql'变量将生成以下SQL语句:

SELECT * FROM LogTable WHERE Application LIKE TestApp ;
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为"TestApp"周围不存在引号.如何在动态SQL中创建引号,允许使用"LIKE"运算符?如何创建下面的SQL语句:

SELECT * FROM LogTable WHERE Application LIKE 'TestApp' ;
Run Code Online (Sandbox Code Playgroud)

sql sql-server dynamic-sql where-clause sql-like

1
推荐指数
1
解决办法
928
查看次数

通过C#将NULL值传递给存储过程

我在MVC Web App中有一个更新类,用于从前端更新字段.这会调用数据库上的过程来更新表中的单元格.(注意:此列可以接受NULL值)

如果我在我的C#代码中设置它,那么它会工作,因为它检查是否在前端传递NULL并用空字符串替换它(空格也可以工作):

update.Value = dataModel.Value == null ? string.Empty : dataModel.Value;
Run Code Online (Sandbox Code Playgroud)

但是,当我查询数据库表时,它不是在单元格中设置NULL值而只是一个空白.如何通过C#代码将NULL值传递给过程?

c# sql-server asp.net-mvc stored-procedures

1
推荐指数
1
解决办法
4619
查看次数