gpt4 book ai didi

c# - 如何将空值传递给使用存储过程的 SqlDataSource?

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:33 26 4
gpt4 key购买 nike

使用 .NET 4 和 C#。所有这些都会引发错误:

sdsTypeinfo.SelectParameters.Add("@TypeCode", DbType.Boolean, DBNull.Value);

sdsTypeinfo.SelectParameters.Add("@TypeCode", DBNull.Value);

sdsTypeinfo.SelectParameters.Add("@TypeCode", null);

sdsTypeinfo.SelectParameters.Add("@TypeCode", "");

错误表明该过程根本没有获得任何值。

Procedure or function 'Typeinfo' expects parameter '@TypeCode', which was not supplied.

回答

您不需要在参数名称中使用@。这与使用 SqlCommand 调用存储过程时添加参数不同,在这种情况下您需要这样的东西:

cmd.Parameters.AddWithValue("@TypeCode", DBNull.Value);

此外,DBNull.value 是上面可接受的参数,但将 SelectParameters 添加到 SqlDataSource 时可接受的 NULL 值只是“null”。

最佳答案

添加参数时应该有一个选项,可以将空字符串转换为null。

<SelectParameters>
<asp:ControlParameter ControlID="lstCategories" Name="ProductSubcategoryID" ConvertEmptyStringToNull="true" PropertyName="SelectedValue" />
</SelectParameters>

由于您使用的是存储过程,因此您需要将参数设为可选:

@SomeParm INT = NULL

关于c# - 如何将空值传递给使用存储过程的 SqlDataSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com