vb.net 301号室:データベースから情報を取得

スポンサーリンク
vb.netの部屋
Kappo
Kappo

プログラムの中でデータベースから必要な情報を取得して色々と操作したいことってありませんか?
データベースに情報さえあれば、プログラムでの表現が広がると思いませんか?
この部屋では、データベースに接続して利用したいテーブル情報を取得する方法を案内してます
Kappoは、変数の宣言や接続記述・後片付け記述などはほとんどおまじない的(固定コーディング)に使いまわしていて便利ですよ!!
ぜひ利用してみてください!
また、一番したの方にコメント欄があるからよかったら質問・感想などメッセージ入れてください

データベースはAccessを利用してみます・・・情報の塊りとして手軽に使えますからね!
・データベース名:Sample.accdb
・テーブル名:tblData

テーブル内のデータは下図のようにしてみました

フォームにボタンコントロールとラベルコントロールを配置します
・ボタンコントロール:Button1
・ラベルコントロール:

ADODBを使うために「メニュー」-「プロジェクト」-「#####のプロパティ」を開いて、
参照タブで追加をします
「追加」ボタンをクリックします

参照マネージャーが開いたら、COMタブを選んで「Microsoft ActiveX Data Object #.# Library」にレ点を入れます(#.#はバージョンで、Kappoは ’6.1’ を選択しました)

選んだら、「OK」ボタンをクリックします
 ↓
参照に選択したライブラリが追加されました

Button1コントロールのプログラム

データベースから情報を取得します
[手順]
・データベースに接続する
・データベースを開く(開く条件はSQL文を作ります)
・データベースから情報を取得する

▼プログラム▼

        '------------------------------

        Dim cnn As ADODB.Connection 'コネクション用の変数
        Dim rec As ADODB.Recordset  'レコードセット用の変数
        Dim mySQL As String = ""    'SQL文用の変数

        Dim mdbPath As String = ""  'MDBファイルのフルパス用の変数

        mdbPath = "C:\Sample" & "\" & "Sample.accdb"    'MDBのフルパス

        '------------------------------

        cnn = New ADODB.Connection  'コネクションの宣言

        'MDB接続宣言:Accessファイル(2007~)を開く
        cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & mdbPath & ";"

        cnn.Open()  'MDBにコネクションする

        '------------------------------

        rec = New ADODB.Recordset   'レコードセットの宣言

        mySQL = "SELECT * FROM tblData;"    'MDBを開くためのSQL文=tblDataの全てが対象

        '読み取り専用でMDBを開く
        Call rec.Open(mySQL, cnn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)

        If rec.RecordCount <> 0 Then    'データがあることを確認(エラーを防ぐためのおまじないです

            '1行名のレコード情報をラベルコントロールに代入
            Label1.Text = rec("DATA1").Value
            Label2.Text = rec("DATA2").Value
            Label3.Text = rec("DATA3").Value
            Label4.Text = rec("DATA4").Value

        End If

        rec.Close() 'MDBを閉じる

        '------------------------------
        '後片付け:絶対的なおまじないっす

        rec = Nothing   '変数の解放

        cnn.Close() '接続を閉じる

        cnn = Nothing   '変数の解放

        '------------------------------

フォームのButton1を押したら、下図のようにデータベースの1行目の情報を取得してラベルコントロールにデータが表示されました

テーブル内の情報を色々取得したい場合は
 rec.MoveFirst()・・・テーブルの先頭のレコードに移動します
 rec.MoveLast()・・・テーブルの最後のレコードに移動します
 rec.MoveNext()・・・次のレコードに移動します
 rec.MovePrevious()・・・一つ前のレコードに移動します
コマンドを使ってレコードを移動して必要な情報を取得することが出来ますよ!

Amazon | 本, ファッション, 家電から食品まで | アマゾン
Amazon.co.jp 公式サイト。アマゾンで本, 日用品, ファッション, 食品, ベビー用品, カー用品ほか一億種の商品をいつでもお安く。通常配送無料(一部を除く)

  

コメント

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