我在C#中使用预处理语句。
SqlCommand inscommand = new SqlCommand(supInsert, connection);
inscommand.Parameters.Add("@ordQty", SqlDbType.Decimal,18);
inscommand.Prepare();
u = inscommand.ExecuteNonQuery();
上面的代码抛出以下异常:
SqlCommand.Prepare方法要求类型为'Decimal'的参数具有明确设置的Precision和Scale。
编辑:如何避免此异常
最佳答案
以下将设置精度为18且小数位数为8的小数(小数(18,8))
SqlCommand insertCommand= new SqlCommand(supInsert, connection);
insertCommand.Parameters.Add("@ordQty", SqlDbType.Decimal,18);
insertCommand.Parameters["@ordQty"].Precision = 18;
insertCommand.Parameters["@ordQty"].Scale = 8;
insertCommand.Prepare();
u = insertCommand.ExecuteNonQuery();