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

VB.NETでデータベースの指定したテーブルのデータ(レコード)を削除(Delete)する方法について覚書。

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

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

以下手順について覚書。

スポンサーリンク

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

以下に[TableAdapterクエリの構成ウィザード]の設定手順について記載。

ソリューションエクスプローラからMSDataSetGenerator(*.xsd)をダブルクリックして表示する。

追加対象のテーブルを右クリックする。

コンテキストメニューから[クエリの追加](右クリックの場所によっては、[追加] → [Query])をクリックする。

[TableAdapterクエリの構成ウィザード]が起動するので[SQLステートメントを使用する]がオンになってるのを確認して[次へ]をクリックする。

[DELETE]をオンにして、[次へ]をクリックする。

DELETE文を勝手に作成してくれるが、このDELETE文はWhere条件に余計なフィールドが指定されている場合があるので編集する。

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

Whereに指定するフィールドは、レコードを一意に識別するためのキー列のみでよい。

複合キーの場合は、当然複合キーに指定されているフィールド全部を指定する。

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

DELETE FROM `運送会社` WHERE ((`運送コード` = ?) AND ((? = 1 AND `運送会社` IS NULL) OR (`運送会社` = ?)) AND ((? = 1 AND `電話番号` IS NULL) OR (`電話番号` = ?)))
  

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

DELETE FROM `運送会社` WHERE `運送コード` = ?
  

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

[新しい関数の名前]ボックスに自分でわかりやすい任意の名前を入力(例:DeleteDataとか)して[完了]をクリックする。

以上で[TableAdapterクエリの構成ウィザード]の設定手順は終了。

テーブルからデータ(レコード)を削除するサンプルコード

実際にデータを削除するときは、以下のように記述する。

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

Me.運送会社TableAdapter.DeleteData(運送コード:=1)
  

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

Me.運送会社TableAdapter.DeleteData(1)
  

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

コメント

タイトルとURLをコピーしました