代碼:
string daStr = "UPDATE Store SET Quantity=(Quantity-'"+txtNumber .Text +"') WHERE ProductID='"+txtProduct.Text+"'";
OleDbCommand cmd = new OleDbCommand(daStr, conn);
cmd.ExecuteNonQuery();這是報錯的代碼!!
報的錯誤是:
轉換資料型別從 varchar 到 numeric 時發生錯誤。
說明:Quantity 是 decimal 類型, txtNumber 是一個textBox控件。
請大大幫忙看看到底是怎麼回事啊!!
string daStr = "UPDATE Store SET Quantity=(Quantity-'"+txtNumber .Text +"') WHERE ProductID='"+txtProduct.Text+"'";
OleDbCommand cmd = new OleDbCommand(daStr, conn);
cmd.ExecuteNonQuery();這是報錯的代碼!!
報的錯誤是:
轉換資料型別從 varchar 到 numeric 時發生錯誤。
說明:Quantity 是 decimal 類型, txtNumber 是一個textBox控件。
請大大幫忙看看到底是怎麼回事啊!!
如果Quantity是数字型的话
UPDATE Store SET Quantity=(Quantity-CAST('"+txtNumber .Text +"' AS numeric(19,2)))....
需要类型转换
OleDbCommand cmd = new OleDbCommand(daStr, conn);
cmd.ExecuteNonQuery();
ProductID在你的表里是什么类型呢?
也有可能是这里错(类型不对)
如果你的PRODUCTID也是数字的话
WHERE ProductID="+txtProduct.Text;
CAST 幹什麼的? 裏面有是怎麼一回事啊??
OleDbCommand cmd = new OleDbCommand(daStr, conn);
cmd.ExecuteNonQuery();
我想应该是这样
你的这个"txtProduct.Text"里面的类型默认是字符型,而你在数据库里设定的应该是数字类型的,这样当你把参数传进去的时候存在一个隐性转换的问题,所以就出了--轉換資料型別從 varchar 到 numeric 時發生錯誤。
你应该把在textNumber.txt明确转换为数字类型然后再传进去试试。
我這麼寫 也報錯啊!!要把txtNumber.text轉成 int 型 該怎麼寫代碼呢?