名前と価格の2つの列があります。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; i++ )
{
String insertData = "INSERT INTO CostList(SupplierName, CostPrice, PartsID) VALUES (@SupplierName, @CostPrice, @PartsID)" ;
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();
EDIT : 上記のコードは、datagridview 内のすべてのデータをデータベースに追加し、複製を続けます。
ご清聴ありがとうございました。