Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让ASP.NET SelectParameters接受空值_C#_Asp.net_Sql - Fatal编程技术网

C# 让ASP.NET SelectParameters接受空值

C# 让ASP.NET SelectParameters接受空值,c#,asp.net,sql,C#,Asp.net,Sql,我有一个页面可以查看所有大学,我希望此页面可以查看每个城市的筛选数据,我在SQL语句中添加了: WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL) 并将@Unv_CitId参数的DefaultValue设置为NULL,但我得到了错误 我如何解决这个问题 您应该分配valueDBNull.value而不是null您可以试试这个 where (Cit_Id = isdbnull(@Unv_CitId)?null:@unv_citId 我不是百分之百

我有一个页面可以查看所有大学,我希望此页面可以查看每个城市的筛选数据,我在SQL语句中添加了:

WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL)
并将@Unv_CitId参数的DefaultValue设置为NULL,但我得到了错误


我如何解决这个问题

您应该分配value
DBNull.value
而不是
null

您可以试试这个

where (Cit_Id = isdbnull(@Unv_CitId)?null:@unv_citId

我不是百分之百确定你的意图,但是像这样的事情呢:

WHERE (Cit_Id = @Unv_CitId OR Cit_Id IS NULL)
原始查询中的
@Unv\u CitId IS NULL
看起来有点奇怪:该子句不是针对字段进行检查,只是针对传入的值进行检查。

是的,现在可以了,
我将SqlDataSource的CancelSelectOnNullParameter属性设置为False,并在如下所示的过程中声明参数时将参数的默认值删除为null

@Unv_CitId int NULL

因此varibale也将接受空值。

错误是什么?请共享完整查询,而不仅仅是
where
子句。向我们显示您收到的异常。谢谢,但是我收到了以下错误“将nvarchar值'DB.Null'转换为数据类型int时转换失败”。我想您不需要查询的'Unv_CitId IS Null'部分。请将其更改为DBNull.value,而不是DBNull。