我是否知道如何在DataGridView中向数据库中添加新添加的数据?

时间:2012-08-07 07:35:51

标签: c# sql database datagridview insert

enter image description here

我需要知道如何将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();

单击“更新”按钮后,上面的代码没有响应。没有错误,但数据库中没有插入任何内容,图中显示的数据是我数据库中已有的原始数据。

或者有更好的代码将所有新添加的数据行插入数据库的任何人,请告诉我。我会很感激的。

1 个答案:

答案 0 :(得分:0)

在for循环中,当您使用>=时,您正在使用<=

变化:

for (int i = 0; i>=dataGridView1.Rows.Count - 1; i++ )

为:

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

所以你的for循环永远不会执行。如果您在调试器中跟踪代码,这应该是显而易见的。