假设一个sqlcommand的commandtext设置为:
cmd.commandtext= "select * from tablename where field1 <> @P1";
cmd.parameters.add(new sqlparameter("@P1", DbType.String, DBNull.Value));
IDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
........
}
请问这样可以吗?
(也就是说SqlParameter的值设置为DBNull.Value, 而比较符号用的是“<>”)
还是必须用 where field1 is not null ???
这样用不可以。实际上这是数据库层面的问题。即使执行通过可能也不是你想要的结果。
注意:xxx<>'xxxx'表示xxx is not null and xxx<>'xxxx'
判断是否为NULL要使用ColumnX is NULL
具体参考:
http://www.cnblogs.com/yukaizhao/archive/2008/11/24/t_sql_null.html