DataSetの更新をデータベースへ反映させる - TableAdapterを利用したレコードの更新 - C#

DataSetへの更新をデータベースへ反映させる手順とコードを紹介します。

はじめに

こちらの記事ではテーブルのレコードをDataGridViewに表示するシンプルなアプリケーションの作成手順を紹介しました。

UI



アプリケーションを実行します。ウィンドウが表示されDataGridViewにレコードが表示されます。


一番下の行に追記します。


アプリケーションを終了しサイドアプリケーションを実行します。レコードが表示されますが先ほど追記した内容は追加されていません。データベースへの反映はされていないことがわかります。

データベースへの反映

事前準備

こちらの記事のテーブルのレコードをDataGridViewに表示するシンプルなアプリケーションを作成します。

UI

下図のUIを作成します。先のプログラムのUIにボタンを1つ追加します。

コード

下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SimpleDataUpdate
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      // TODO: このコード行はデータを 'iPentecSandBoxDataSet.SimpleProduct' テーブルに読み込みます。
      //必要に応じて移動、または削除をしてください。
      this.simpleProductTableAdapter.Fill(this.iPentecSandBoxDataSet.SimpleProduct);

    }

    private void button1_Click(object sender, EventArgs e)
    {
      simpleProductTableAdapter.Update(iPentecSandBoxDataSet);
    }
  }
}

解説

フォームに作成・配置されているTableAdapterコンポーネントのUpdateメソッドを呼び出します。Updateメソッドの引数にはデータセットを与えます。データセットもフォームに作成・配置されているデータセットコンポーネントを用います。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。最後の行にレコードを追記します。

buttonをクリックします。追記したレコードがデータベースに反映されます。idのフィールドのIDがTrueになっている場合、自動で採番されます。


プログラムを終了し、再度実行すると先ほど追加したレコードがDataGridViewに表示されます。追加したレコードがデータベースに追加されていることが確認できました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-07
作成日: 2012-10-23
iPentec all rights reserverd.