我有以下ADO.NET
代码,其中我面临例外:
Failed to convert parameter value from a String to a Decimal.
这段代码一直运行到昨晚,但我认为发生了一些不寻常的事情。
try
{
da.InsertCommand = new SqlCommand(@"INSERT INTO ITEM_DETAILS VALUES(@ITEM_MODEL,@ITEM_NAME,@ITEM_DESCRIPTION,@VENDOR_NAME,@QUANTITY,@RATE,'',@INVOICE_NUM,@DATE,@Discount)", con);
da.InsertCommand.Parameters.Add("@ITEM_MODEL", SqlDbType.VarChar).Value = txtItemModel.Text;
da.InsertCommand.Parameters.Add("@ITEM_NAME", SqlDbType.VarChar).Value = txtItemName.Text;
da.InsertCommand.Parameters.Add("@ITEM_DESCRIPTION", SqlDbType.VarChar).Value = txtItemDescription.Text;
da.InsertCommand.Parameters.Add("@VENDOR_NAME", SqlDbType.VarChar).Value = txtVendor.Text;
da.InsertCommand.Parameters.Add("@QUANTITY", SqlDbType.Int).Value = txtQuantity.Text;
da.InsertCommand.Parameters.Add("@RATE", SqlDbType.Money).Value = txtRate.Text;
// da.InsertCommand.Parameters.Add("@AMOUNT", SqlDbType.Money).Value = txtAmount.Text;
da.InsertCommand.Parameters.Add("@INVOICE_NUM", SqlDbType.Int).Value = txtInvoice.Text;
da.InsertCommand.Parameters.Add("@DATE", SqlDbType.Date).Value = (dateTimePicker1.Value);
da.InsertCommand.Parameters.Add("@Discount", SqlDbType.Money).Value = txtDiscount.Text;
con.Open();
da.InsertCommand.ExecuteNonQuery();
con.Close();
}
catch
{
MessageBox.Show("Something wrong enters", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
我试过但没有找到这个例外的解决方案。任何帮助都会非常明显。
答案 0 :(得分:0)
在INSERT
语句的定义中,在@RATE
和@INVOICE_NUM
之间,您引入了一个空字符串值。也许可能是这个问题?
使用您的Parameters.Add
方法调用,我希望在这个地方可能是@AMOUNT
参数,实际上是评论过的。也许这就是您将列值直接设置为''
的原因。
如果此值适合您,请尝试将''
值替换为0
。