代碼:
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控件。
請大大幫忙看看到底是怎麼回事啊!!

解决方案 »

  1.   

    string daStr = "UPDATE Store SET Quantity=(Quantity-"+txtNumber .Text +") WHERE ProductID='"+txtProduct.Text+"'"; 
      

  2.   

    UPDATE Store SET Quantity=(Quantity-'"+txtNumber .Text +"')这样肯定不对
    如果Quantity是数字型的话
    UPDATE Store SET Quantity=(Quantity-CAST('"+txtNumber .Text +"' AS numeric(19,2)))....
    需要类型转换
      

  3.   

    string daStr = "UPDATE Store SET Quantity=(Quantity-'"+txtNumber .Text +"') WHERE ProductID='"+txtProduct.Text+"'"; 
            OleDbCommand cmd = new OleDbCommand(daStr, conn); 
            cmd.ExecuteNonQuery(); 
    ProductID在你的表里是什么类型呢?
      

  4.   

    ProductID='"+txtProduct.Text+"'"; 
    也有可能是这里错(类型不对)
      

  5.   

    string daStr = "UPDATE Store SET Quantity=(Quantity-"+txtNumber .Text +") WHERE ProductID="+txtProduct.Text; 
      

  6.   

    string daStr = "UPDATE Store SET Quantity=(Quantity-CAST('"+txtNumber .Text +"' AS numeric(19,2))) 
    如果你的PRODUCTID也是数字的话
    WHERE ProductID="+txtProduct.Text; 
      

  7.   

     別管這個,出錯的地方是 Quantity 那裏,你看我貼出的報錯信息就知道了啊
      

  8.   

    我 SQL 裏調試怎麼搞 都成,寫到VS 裏就出問題了啊
      

  9.   

    能幫我解釋一下  CAST('"+txtNumber .Text +"' AS numeric(19,2))  麼?
    CAST 幹什麼的? 裏面有是怎麼一回事啊??
      

  10.   

    string daStr = "UPDATE Store SET Quantity=(Quantity-'"+txtNumber .Text +"') WHERE ProductID='"+txtProduct.Text+"'"; 
            OleDbCommand cmd = new OleDbCommand(daStr, conn); 
            cmd.ExecuteNonQuery();
    我想应该是这样
    你的这个"txtProduct.Text"里面的类型默认是字符型,而你在数据库里设定的应该是数字类型的,这样当你把参数传进去的时候存在一个隐性转换的问题,所以就出了--轉換資料型別從 varchar 到 numeric 時發生錯誤。 
    你应该把在textNumber.txt明确转换为数字类型然后再传进去试试。
      

  11.   

    int i=convert.toint32(txtNumber.text);
    我這麼寫 也報錯啊!!要把txtNumber.text轉成 int 型 該怎麼寫代碼呢?