VB.NET:データベースの指定したテーブルのデータ(レコード)を更新(Update)するサンプルプログラム

VB.NETでデータベースの指定したテーブルのデータ(レコード)を更新するサンプルプログラムについて覚書

もっとも簡単なのは、対象のテーブルのアダプターに各クエリーを作成すること。

[TableAdapterクエリの構成ウィザード]を使って簡単にできる。

以下手順について覚書。

[TableAdapterクエリの構成ウィザードの設定手順

  1. ソリューションエクスプローラからMSDataSetGenerator(*.xsd)をダブルクリックして表示する。
  2. 追加対象のテーブルを右クリック。
  3. コンテキストメニューから[クエリの追加](右クリックの場所によっては、[追加] → [Query])をクリック
  4. [TableAdapterクエリの構成ウィザード]が起動するので[SQLステートメントを使用する]がオンになってるのを確認して[次へ]をクリック
  5. [UPDATE]をオンにして、[次へ]をクリック
  6. UPDATE文を勝手に作成してくれるが、このUPDATE文はWhere条件に余計なフィールドが指定されている場合があるので編集する。

編集する場合は、そのまま自動で作成されたSQL文を編集するか、[クエリ ビルダ]をクリックしてビルダを起動。

*Whereに指定するフィールドは、レコードを一意に識別するためのキー列のみでよい。
*複合キーの場合は、当然複合キーに指定されているフィールド全部を指定する。

今回は、AccessのサンプルDB Northwindの運送会社テーブル使用しているので、表示されるSQL文は、以下のようになっている。

運送会社テーブルは、運送コードが主キーになっているので、以下のように変更する。

変更したら、[次へ]をクリック。

  • [新しい関数の名前]ボックスに自分でわかりやすい任意の名前を入力(例:UpdateDataとか)して[完了]をクリック
  • 以上で[TableAdapterクエリの構成ウィザード]の設定は終了。

    テーブルのデータ(レコード)の更新方法

    実際にデータ(レコード)を更新するときは、以下のように記述する。

    名前付き引数で指定した場合

    *UPDATE文の時だけ運送コードに”Original_”って頭に付くのは何でだ?
    *オートナンバー型のフィールドだからか? 意味不明。

    名前付き引数を使用しない場合

    名前付き引数を使用しない場合は以下の記載で良い。


    当然引数に指定している運送コード部分は変数等に変更可。