2016-12-29 98 views
-2

我想請教一下這個..
我的查詢沒有成功,但我沒有看到這裏有什麼問題
這裏是我的代碼:
爲什麼我不能插入我的數據? C#的winform

 private void save_btn_Click(object sender, EventArgs e) 
     { 
      MySqlConnection con = new MySqlConnection("server=127.0.0.1;database=project;Uid=root;Pwd=admin"); 
      MySqlCommand job; 
      string id_pembayaran = count_id("payment"); 
      string order_id = String.Concat("ORD", id_pembayaran); 

      for (int i = 0; i < List_Pembelian.Rows.Count; i++){ 
      job = new MySqlCommand("INSERT INTO payment VALUES(@id,@ordid,@userid,@nama,@jlh,@total)", con); 
      job.Parameters.AddWithValue("@id",count_id("payment")); 
      job.Parameters.AddWithValue("@ordid", order_id); 
      job.Parameters.AddWithValue("@userid", User_Validation_Field.Text); 
      job.Parameters.AddWithValue("@nama", List_Pembelian.Rows[i].Cells[0].Value.ToString()); 
      job.Parameters.AddWithValue("@jlh", List_Pembelian.Rows[i].Cells[1].Value.ToString()); 
      job.Parameters.AddWithValue("@total",List_Pembelian.Rows[i].Cells[3].Value.ToString()); 
      con.Open(); 
      try 
      { 
       job.ExecuteNonQuery(); 
       int a = job.ExecuteNonQuery(); 
       MessageBox.Show(a.ToString()); 
       MessageBox.Show("SUKSES"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 

      } 
      finally 
      { 
       con.Close(); 
      } 
      } 
     } 

我做我的代碼中的任何錯誤?如果是的話請告訴我xx

+0

ExecuteNonQuery返回一個int值,表示受影響的行數。使用一個變量來獲得該結果並讓我們知道它是什麼。通常在這些情況下,您只是在查看與您的程序不同的數據庫。 – Crowcoder

+0

我得到-1當我嘗試它把它放在變量x.x中,我不明白那是什麼 – Wilx

+0

然後它沒有成功。我認爲MySQL需要以與查詢相同的順序添加到命令中的參數,所以請更改並重試。 – Crowcoder

回答

1

問題是你想插入一個for循環,顯然是從一個集合(datatable我猜),但你永遠不會使用該集合中的元素,因爲你的索引不會在循環。將它們替換爲索引i,您可以循環訪問您的集合。

更新: 您應該修復傳遞給查詢的參數順序。您的參數順序與您在評論中提供的列順序不符。還修複數據類型。

+0

ups,sry我忘了改變那個索引...:D但是我的問題仍然是一樣的我的查詢是成功的但我的數據沒有更新 – Wilx

+0

你的表格是怎麼樣的? – Mahdi

+0

我的表是這樣的:@ int(10),userID varchar(10),orderID varchar(10),itemName varchar(10),itemCount int(10),totalPrice int(30) – Wilx