当我们为SqlCommand对象添加参数,如果参数值是0(零),它被当作参数没有被指定任何值(可能为空),在执行command.ExecuteReader()语句之后,.NET中抛出一个异常说未指定的参数。
解决方案:
当您指定一个值参数的对象,就会被微软.NET框架推断出来是SqlDbType的对象类型。
使用时要小心使用这个SqlParameter的构造函数重载来指定整数参数值。由于此重载采用类型对象的值,你必须转换积分值对象类型,如果值是零,如下面的C#示例所示。
Parameter = new SqlParameter("@pname", Convert.ToInt32(0));
如果你不执行这个转换,编译器假定您正在尝试调用的SqlParameter(string,SqlDbType)构造函数重载。
相关帖子:
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/3055d4d6-8c3f-4b21-86be-e553bb46f286
http://msdn.microsoft.com/en-us/library/0881fz2y.aspx
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过
邮件告诉我们。