简书链接:错误String8theSizepropertyhasaninvalidsizeof0
文章字数:88,阅读全文大约需要1分钟
这里有2个信息,8 而实际上写错的参数是9 , 总参数长度为9 ,也就是8之后出现错误.

1
2
3
cmd.Parameters.Add("@XXX", SqlDbType.VarChar); cmd.Parameters["@XXX"].Precision = 19;
cmd.Parameters["@XXX"].Scale = 5;
cmd.Parameters["@ErrMsg"].Direction = ParameterDirection.Output;

字符串类型应该定义为 cmd.Parameters["@XXX"].Size = 300;
修正后

1
2
3
cmd.Parameters.Add("@XXX", SqlDbType.VarChar); cmd.Parameters["@XXX"].Precision = 19;           
cmd.Parameters["@XXX"].Size = 300;
cmd.Parameters["@ErrMsg"].Direction = ParameterDirection.Output;

或者直接

cmd.Parameters.Add("@XXX", SqlDbType.VarChar, 32);
scale是对于数值类型的,字符串类型应该 是size.