我需要知道如何将DataGridView
中新插入的数据行添加到数据库中。无论如何插入行,当我单击“更新”按钮时,所有新插入的行都将插入到数据库中。
这是我的代码:
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = "Data Source=tcp:SHEN-PC,49172\\SQLEXPRESS;Initial Catalog=LSEStock;Integrated Security=True";
con.Open();
SqlDataAdapter da = new SqlDataAdapter();
for (int i = 0; i>=dataGridView1.Rows.Count - 1; i++ )
{
String insertData = "INSERT INTO CostList(SupplierName, CostPrice, PartsID) VALUES (@SupplierName, @CostPrice, '" + textBox1.Text + "')";
SqlCommand cmd = new SqlCommand(insertData, con);
cmd.Parameters.AddWithValue("@SupplierName", dataGridView1.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@CostPrice", dataGridView1.Rows[i].Cells[1].Value);
cmd.Parameters.AddWithValue("@PartsID", textBox1.Text);
da.InsertCommand = cmd;
cmd.ExecuteNonQuery();
}
con.Close();
单击“更新”按钮后,上面的代码没有响应。没有错误,但数据库中没有插入任何内容,图中显示的数据是我数据库中已有的原始数据。
或者有更好的代码将所有新添加的数据行插入数据库的任何人,请告诉我。我会很感激的。
答案 0 :(得分:0)
在for循环中,当您使用>=
时,您正在使用<=
变化:
for (int i = 0; i>=dataGridView1.Rows.Count - 1; i++ )
为:
for (int i = 0; i<=dataGridView1.Rows.Count - 1; i++ )
所以你的for循环永远不会执行。如果您在调试器中跟踪代码,这应该是显而易见的。