当 SqlCommand 对象添加参数,如果参数值是 0 (零),它被当作参数没有被指定任何值(可能为空),在执行 command.ExecuteReader ()语句之后, .NET 中抛出一个异常说未指定的参数。
解决方案:
当您指定一个值参数的对象,就会被微软 .NET 框架推断出来是 SqlDbType 的对象类型 。
使用时要小心使用这个 SqlParameter 的构造函数重载来指定整数参数值。由于此重载采用类型对象的值,你必须转换积分值对象类型,如果值是零,如下面的 C #示例所示。
Parameter = new SqlParameter("@pname", Convert.ToInt32(0));
如果你不执行这个转换,编译器假定您正在尝试调用的 SqlParameter(string,SqlDbType) 构造函数重载。