0

ここに画像の説明を入力してください

新しく挿入されたデータ行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();

[更新]ボタンをクリックしても、上記のコードは応答しません。エラーはありませんが、データベースには何も挿入されていません。写真に示されているデータは、データベースにすでに存在する元のデータです。

または、新しく追加されたすべてのデータ行をデータベースに挿入するためのより優れたコードをお持ちの方は、ぜひお知らせください。よろしくお願いします。

4

1 に答える 1

0

forループでは、を使用する>=必要があるときにを使用しています<=

変化する:

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

に:

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

したがって、 for ループは決して実行されません。デバッガーでコードをトレースすれば、これは明らかなはずです。

于 2012-08-08T01:39:32.000 に答える