2016-01-05 67 views
-2

我試過兩套代碼更新按鈕,並且所有這些都失敗了。第一個錯誤是關於truncuated double,第二個錯誤是無法連接到DB。有人能告訴我什麼是錯的嗎?更新按鈕c#sql

1組代碼:

void updateSection() 
     { 
      con.Close(); 
      cmd = new MySqlCommand("update deliver_supplies set Del_SSupplier ='" + SuppNameCombo.Text + "' and Del_SName ='" + txtProdName.Text + "' and Del_SBrand ='" + txtProdBrand.Text + "' and Del_SQty ='" + txtQty.Text + "' and Del_SReceived ='" + DTPReceived.Text + "' where Del_sID ='" + lblSuppIDChecker.Text + "'", con.con); 
      con.Open(); 
      reader = cmd.ExecuteReader(); 
     } 

第二套代碼:

void updateSection() 
    { 
     string cmdText = @"update deliver_assets 
      set Del_ASupplier [email protected] 
       Del_AName = @name, 
       Del_ABrand = @brand 
       Del_AQty = @qty 
       Del_AReceived = @recv 
      where Del_aID = @id"; 
     using(MySqlConnection con = new MySqlConnection(.....)) 
     using(MySqlCommand cmd = new MySqlCommand(cmdText, con)) 
     { 
      cmd.Parameters.Add("@sup", MySqlDbType.VarChar).Value = SuppNameCombo.Text; 
      cmd.Parameters.Add("@name", MySqlDbType.VarChar).Value = txtProdName.Text; 
      cmd.Parameters.Add("@brand", MySqlDbType.VarChar).Value = txtProdBrand.Text; 
      cmd.Parameters.Add("@qty", MySqlDbType.VarChar).Value = Convert.ToDouble(txtQty.Text); 
      cmd.Parameters.Add("@recv", MySqlDbType.VarChar).Value = DTPReceived.Text; 
      cmd.Parameters.Add("@id", MySqlDbType.Int32).Value = Convert.ToInt32(lblAssetIDChecker.Text); 
      con.Open(); 
      int rowsUpdated = cmd.ExecuteNonQuery(); 
      if(rowUpdated > 0) 
       MessageBox.Show("Record updated"); 
     } 
    } 
+0

請說明確切的錯誤和它們發生的地方。你也可以添加你使用的數據庫作爲標籤嗎? –

+0

第一個代碼的錯誤是:截斷不正確DOUBLE值:'OMG Suppliers'(OMG供應商是一個測試數據。 –

+0

你的第一個查詢似乎不是正確的。爲什麼你使用'和'而不是逗號' ,'like second query? – Sachin

回答

0

參數數量似乎是一個VARCHAR - 您使用的是雙 - 檢查你的數據類型。這是什麼?使用正確的。第二個錯誤會顯示您沒有有效的SQLCommand。使用基本的SELECT語句檢查連接,然後逐個添加參數。

+0

varchar被改爲toInt32,所以還是兩次相同的錯誤:Input String的格式不正確。好吧,我現在就做。 –

+0

我會在早上接受它...但ListView不是部分你的鱈魚e - SQL是否正確執行 - 這是第一個問題。 –

+0

好的。我非常感謝你的幫助。我對這一切都很陌生。 這是一個更新函數的UDF,它主要關注更新數據庫內的數據。 SQL工作正常,然後停止在cmd.Parameters.Add(「@ qty」,MySqlDbType.Int32).Value = Convert.ToInt32(txtQty.Text);而錯誤是輸入字符串不是正確的格式。 –