当前位置:编程学习 > C#/ASP.NET >>

参数化查询参数可能为空咋办咛

语句是:SELECT * FROM table1 WHERE name=@name

对应的C#:
command.Parameters.Add("@name", SqlDbType.NVarchar).Value = name1;

但是可能需要查name字段值为null的数据,即WHERE name IS NULL效果
但是这不是
command.Parameters.Add("@name", SqlDbType.NVarchar).Value = DBNull.Value;
能解决的。有无好办法呢 --------------------编程问答-------------------- SELECT * FROM table1 WHERE name is null or name=@name
?

--------------------编程问答-------------------- if (String.isnullOrEmpty(name))
{
sql = "SELECT * FROM table1 WHERE name is null";
}
else
{
sql = "SELECT * FROM table1 WHERE name=@name";
command.Parameters.Add("@name", SqlDbType.NVarchar).Value = name1;
......
} --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
SELECT * FROM table1 WHERE name is null or name=@name
?

这个就可以 --------------------编程问答-------------------- name=isnull(@name,'')试试 --------------------编程问答--------------------
select ISNULL(name,'空'), 把所有字段都写在这 别用 *  from userinfo where name is null or name=@name --------------------编程问答--------------------
引用 3 楼 lovetsfuer 的回复:
引用 1 楼 gxingmin 的回复:

SELECT * FROM table1 WHERE name is null or name=@name
?

这个就可以


不不不,这样的话任何时候都会查出name为null的记录,我需要的是如果c#变量name1=="abc",就查出字段name=abc的记录,如果name1为null,就查出字段name IS NULL的记录

我现在也是3楼那么写的,想找找更好的办法
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,