【VB.NET】データベースのデータをデータセットに設定するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、データベースのデータをデータセットに設定する方法をご紹介します。

データベースのデータをデータセットに設定する

  • SQL Serverなどのデータベースのデータを、データセットに設定するには、DataSetクラスを使用します。
  • DataSetは、データベースに似た構造を持つ、データベースに非接続のキャッシュです。
  • SQL ServerとDataSetとを比較したイメージ図が以下になります。


  • データセットに設定するには、まず、OleDbDataAdapterクラスをインスタンス化します。
  • 書式は、以下になります。

New OleDb.OleDbDataAdapter()

  • 次に、OleDbCommandクラスをインスタンス化し、CommandTextプロパティで、実行するSQL文を設定します。
  • 書式は、以下になります。

New OleDbCommand()

インスタンス化したOleDbCommand.CommandText = 実行するSQL文

  • 次に、OleDbDataAdapterのSelectCommandプロパティに、インスタンス化したOleDbCommandを設定します。
  • 書式は、以下になります。

インスタンス化したOleDbDataAdapter.SelectCommand = インスタンス化したOleDbCommand

  • 最後に、OleDbDataAdapterのFillメソッドで、データセットにデータを設定します。
  • 書式は、以下になります。

インスタンス化したOleDbDataAdapter.Fill(DataSet型の変数 , テーブル名)

  • SQL Serverに接続する場合は、SqlDataAdapterクラスでも可能です。
  • SqlDataAdapterクラスのインスタンス化

    New SqlDataAdapter()

  • SqlCommandクラスのインスタンス化

    New SqlCommand()

  • SQL文を設定

    インスタンス化したSqlCommand.CommandText = 実行するSQL文

  • SelectCommandプロパティに、インスタンス化したSqlCommandを設定

    インスタンス化したSqlDataAdapter.SelectCommand = インスタンス化したSqlCommand

  • Fillメソッドで、データセットにデータを設定

    インスタンス化したSqlDataAdapter.Fill(DataSet型の変数 , テーブル名)

サンプルプログラム

OleDbDataAdapterクラスを使用する

2 「データベースのデータをデータセットに設定」ボタンクリック時に以下処理を行う。
4~8 接続先データベースの情報を、変数に代入。
14 OleDbConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
16~21 ConnectionStringプロパティにデータベース情報を設定。
23 データベースに接続。
25 OleDbDataAdapterクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
26 OleDbCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
28 SQL文を実行するために、16~21行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
30~34
レコードを抽出するSQL文をCommandTextプロパティに設定。
33行目の「?」マークは、以下36~37行目で設定するパラメータを使用する際に記述します。
36 「Product」テーブルの「ProductID」列の開始番号に、値「707」を設定する。
37 「Product」テーブルの「ProductID」列の終了番号に、値「710」を設定する。
39 SelectCommandプロパティに実行するSQL文を設定。
41 Fillメソッドを実行し、DataSet型の変数「ds」にデータを設定。
46 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
50 処理の実行中にエラーが発生した場合、
52 エラー内容を取得し、ラベルに表示する。

SqlDataAdapterクラスを使用する

2 「データベースのデータをデータセットに設定」ボタンクリック時に以下処理を行う。
4~7 接続先データベースの情報を、変数に代入。
13 SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
15~19 ConnectionStringプロパティにデータベース情報を設定。
21 データベースに接続。
23 SqlDataAdapterクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
24 SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
26 SQL文を実行するために、15~19行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
28~32
レコードを抽出するSQL文をCommandTextプロパティに設定。
31行目の「@」マークは、以下34~35行目で設定するパラメータを使用する際に記述します。
34 「Product」テーブルの「ProductID」列の開始番号に、値「707」を設定する。
35 「Product」テーブルの「ProductID」列の終了番号に、値「710」を設定する。
37 SelectCommandプロパティに実行するSQL文を設定。
39 Fillメソッドを実行し、DataSet型の変数「ds」にデータを設定。
44 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
48 処理の実行中にエラーが発生した場合、
50 エラー内容を取得し、ラベルに表示する。

DataSetに設定されたデータを確認するには

  • デバッグでブレークポイントの設定をし、DataSetビジュアライザーを起動すると、DataSetに設定されたデータを見ることできます。


関連記事

データベースに接続

【VB.NET】データベースに接続するには?

Usingステートメント

【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する

構造化例外処理

【VB.NET】構造化例外処理とは?

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら