【发布时间】:2011-11-04 14:23:05
【问题描述】:
使用 .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”。
【问题讨论】:
-
它会抛出什么样的错误?在 Sql 服务器端还是客户端?究竟是什么错误信息?
-
是错字吗?该错误期望参数被称为
@pTypeCode,而您正在传递@TypeCode...
标签: c# asp.net stored-procedures