使用.NET 4和C#。所有这些抛出一个错误:如何将空值传递给使用存储过程的SqlDataSource?
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在上述可接受的参数,但接受了NULL值时将SelectParameters添加到SqlDataSource只是简单地为“null”。
它抛出什么样的错误?在Sql服务器端或客户端?什么是错误信息? – Icarus
这是一个错字吗?该错误期望该参数被称为'@ pTypeCode',并且您传入'@TypeCode' ... –