【发布时间】:2017-04-04 04:28:21
【问题描述】:
我有一个带有参数的网格视图。它绑定到作为 SQL 查询的数据源。当参数的值为空时,查询在 SQL Server 中执行时返回行。当我尝试通过以下代码行向参数传递空值时,我没有得到任何结果。
FormDS.SelectParameters["ServiceFormCompletedId"].DefaultValue = Request.QueryString["sfcId"];
查询字符串不存在,因此它将空值传递给 FormDS 数据源。 SelectParameters 说它是一个空值。
所以我试着给它一个空字符串。
FormDS.SelectParameters["ServiceFormCompletedId"].DefaultValue = "";
在 ASP.NET 的标记中包含以下内容
<asp:Parameter Name="ServiceFormCompletedId" ConvertEmptyStringToNull="true" />
也没有结果。
我在“配置数据源”的“测试查询”部分中使用以下值测试了数据源并取回了行。
将空值传递给 SqlDataSource 的 SelectParameters 时我遗漏了什么?
【问题讨论】:
-
你试过 DbNull.Value 吗?
-
如何使用 DbNull ?我刚试过。不能将类型“System.DBNull”隐式转换为“字符串”。我尝试了 DbNull.ToString 并且它不起作用,因为它是一个空字符串并且不起作用。
-
如果字符串为空/长度为 0,也许你可以使用三进制,传递 DBNull.Value,否则,传递你的字符串。
-
@WazeAndroid 是正确的。以前的解决方案效果很好。我最初忽略了它,因为我看不到它工作。你想让它成为这个问题的答案吗?
标签: c# asp.net sql-server