我在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();

10-05 19:23