C#.NETのサンプルコードを掲載しています。
      
TableAdapterを使ってデータベースを更新
TableAdapterを使ってデータベースを更新するサンプルです。
更新までの流れは以下の手順となります。
@ データベースからデータを抽出しDataSetへ格納する。
A DataSetの中身を編集(追加、更新、削除)します。
B DataSetの変更点をデータベースに反映します。

※このサンプルは TableAdapterを使ってデータを抽出でTableAdapterを作成していることを前提にしています。
Test.HPDataSetTableAdaptersという空間名称はHPDataSetを作成した時にできる
HPDataSet.Designer.csの中に作成されてます。その中にbreadTableAdapterクラスがあります。

テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

using dta = Test.HPDataSetTableAdapters;

public partial class Form1 : Form
{
    private void button3_Click(object sender, EventArgs e)
    {
        using (dta.breadTableAdapter ta = new dta.breadTableAdapter())
        {
            HPDataSet ds = new HPDataSet();

            // データを抽出します。
            ta.Fill(ds.bread);

            // ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
            // DataSetを編集(追加、編集、削除)します。

            // 追加
            HPDataSet.breadRow addRow = ds.bread.NewbreadRow();
            addRow.id = "S9999";
            addRow.name = "サンドイッチ";
            addRow.price = 130;
            ds.bread.AddbreadRow(addRow);

            // 更新
            foreach (HPDataSet.breadRow editRow in ds.bread)
            {
                // あんぱんの値段を100→90に変更します。
                if (editRow.id == "S0001")
                {
                    editRow.price = 90;
                }
            }

            // 削除
            foreach (HPDataSet.breadRow deleteRow in ds.bread)
            {
                // クロワッサンを削除します。
                if (deleteRow.id == "S0006")
                {
                    deleteRow.Delete();
                }
            }
            // ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

            // AdapterクラスがDataSetを解析し、データベースからデータを
            // 抽出したときから変更があった箇所だけデータベースに書き込みます。
            ta.Update(ds);

        }
    }
}
TableAdapterを使えば、データの更新のためSQL文の発行を意識せず実装ができます。

結果
データベースに反映されました。
      

ADO.NET







Copyright (C) 2011 - 2017 猫の気ままなC#日記