2017-05-03 71 views
-1

我試過下面的代碼,但我可以添加一行記錄只添加到mysql數據庫。我輸入了三行記錄,但只添加了一行記錄。問題是什麼?如何添加多個記錄添加到數據庫從datagridview c#

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
    { 

     MySqlCommand cmd = new MySqlCommand(); 
     cmd.Connection = con; 

     cmd.CommandText = "insert into salesproductnew(salesid,productname,qty,price,grosstotal)values(@salesid,@productname,@qty,@price,@grosstotal)"; 


     cmd.Parameters.AddWithValue("@salesid", lbinvoice.Text); 
     cmd.Parameters.AddWithValue("@productname", dataGridView1.Rows[i].Cells[2].Value); 
     cmd.Parameters.AddWithValue("@qty", dataGridView1.Rows[i].Cells[3].Value); 
     cmd.Parameters.AddWithValue("@price", dataGridView1.Rows[i].Cells[4].Value); 
     cmd.Parameters.AddWithValue("@grosstotal", dataGridView1.Rows[i].Cells[5].Value); 

     con.Open(); 
     cmd.ExecuteNonQuery(); 

     MessageBox.Show("Record added ............."); 
     con.Close(); 

    } 
+0

用try..catch包裝代碼,看看你是否有例外 –

+0

我也沒有例外。沒有錯誤。只有一行記錄只在數據庫中添加了什麼發生了另一個記錄請修復這個問題 –

+0

任何一個幫助我? –

回答

0

您沒有重置您的cmd的參數,您正在每個週期添加新參數。可能沒有正面回答,只是試試這個

MySqlCommand cmd = new MySqlCommand(); 
cmd.Connection = con; 
con.Open(); 
cmd.CommandText = "insert into salesproductnew(salesid,productname,qty,price,grosstotal)values(@salesid,@productname,@qty,@price,@grosstotal)"; 
for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    cmd.Parameters.Clear(); 
    cmd.Parameters.AddWithValue("@salesid", lbinvoice.Text); 
    cmd.Parameters.AddWithValue("@productname", dataGridView1.Rows[i].Cells[2].Value); 
    cmd.Parameters.AddWithValue("@qty", dataGridView1.Rows[i].Cells[3].Value); 
    cmd.Parameters.AddWithValue("@price", dataGridView1.Rows[i].Cells[4].Value); 
    cmd.Parameters.AddWithValue("@grosstotal", dataGridView1.Rows[i].Cells[5].Value); 

    cmd.ExecuteNonQuery(); 

} 

    MessageBox.Show("Record added ............."); 
    con.Close(); 

順便說一句,你不必明確的參數。有關更多信息,請參見this SO

+0

它沒有作用 –

+0

@LoshiniLoganathan你有沒有收到任何錯誤信息? – Orifjon

+0

沒有錯誤,我可以在數據庫中添加一行記錄。我無法添加多個記錄...請幫助我 –