0

私のプロジェクトでは、C# を使用してデータベース テーブルを更新したいと考えています。Database テーブルのデータも DataSet にあります。ここで、DataSet 行の値を変更してからボタンをクリックすると、データベース テーブルが更新されます。

現在、すべてのデータベース テーブルを削除し (DELETE クエリ)、DataSet データを再度追加しています (INSERT クエリ)。これは本当に恐ろしいことです。(これは後で気づきました)

変更されたDataSetの行をデータベーステーブルに追加する方法は? どこから始めればよいかわかりません。データベーステーブルのデータを2倍にする「挿入」クエリを実行してみました。または、代替アプローチはありますか?助けてください。

4

3 に答える 3

1

このような意味ですか?

protected void Page_Load(object sender, EventArgs e)
 {
  DataTable dtDocOperations = new DataTable();
  dtDocOperations.Columns.Add("ButtonRole");
  dtDocOperations.Columns.Add("OperattionCode");
  dtDocOperations.Rows.Add(new Object[] { "MR", "V" });
  dtDocOperations.Rows.Add(new Object[] { "MR", "A" });
  dtDocOperations.Rows.Add(new Object[] { "MR", "R" });
  Session["DocOperattions"] = dtDocOperations;
  dtDocOperations.AcceptChanges(); // once AcceptChanges called then you can get the modified rows

  dtDocOperations.Rows[0]["ButtonRole"] = "mr1";
  DataTable dt = dtDocOperations.GetChanges(DataRowState.Modified);
 }

dtDocOperations.AcceptChanges();

 DataTable dt = dtDocOperations.GetChanges(DataRowState.Modified);

変更した行をDatatableに入力できます

于 2012-11-15T07:39:16.623 に答える
0

メソッド DataSet.AcceptChanges() を見てください。

詳細については、msdn の記事を参照してください。

http://msdn.microsoft.com/en-us/library/system.data.dataset.acceptchanges.aspx

于 2012-11-15T07:41:23.140 に答える
0

注意すべきいくつかの点:
1. おそらく ORM を使用したいと思うでしょう: Entity FrameworkNHibernateDapperは、考慮すべきいくつかのソリューションです。
2. Gridview またはその他のコントロールを使用している場合は、通常、単純なデータ バインディングでこのケースを自動的に処理できます。
3. ID が存在するかどうかを確認するために、各主キーを使用してクエリをいつでも手動で実行できます。実行されている場合は更新を実行し、そうでない場合は挿入を実行します。

于 2012-11-15T07:42:44.670 に答える