OdbcDataReaderオブジェクトを使用して、前方向スクロール読み取り専用でデータ参照するサンプルコードについて説明します。
OdbcDataReaderオブジェクトでの参照方法では、参照レコードの取り出し方向はNEXTだけでカーソル位置づけによるデータ更新はできません。
本サンプルコードは、取得データをメッセージボックスで表示します。
アプリケーションの手順
OdbcConnectionオブジェクトでコネクションを接続します。詳細は、“B.5.1 接続および切断”を参照してください。
OdbcCommandオブジェクトを生成します。
(CommandTextプロパティへSELECT文を設定します)
OdbcCommand.ExecuteReaderメソッドでOdbcDataReaderオブジェクトを生成します。
OdbcDataReaderオブジェクトよりデータを取得します。
OdbcDataReader.Readメソッドで次の行へ位置づけます。
OdbcDataReader.FieldCountプロパティで列数を取得します。
OdbcDataReader.GetValueメソッドでデータを取得します。
OdbcDataReader.CloseメソッドでOdbcDataReaderオブジェクトを閉じます。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“B.5.10 エラー処理”を参照してください。
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'オブジェクト宣言
        Dim con As System.Data.Odbc.OdbcConnection
        Dim com As System.Data.Odbc.OdbcCommand
        Dim drd As System.Data.Odbc.OdbcDataReader
        Dim i As Integer
        Dim msgstr As String
        'OdbcConnectionオブジェクトの生成
        con = New System.Data.Odbc.OdbcConnection("DSN=DSN01;UID=USER01;PWD=PASS01")
        Try
            '1. コネクション接続
            con.Open()
            '2. OdbcCommandオブジェクトの生成
            com = New System.Data.Odbc.OdbcCommand("SELECT * FROM SAMPLE1.TESTTBL", con)
            '3. OdbcDataReaderオブジェクトの生成
            drd = com.ExecuteReader
            '4. データの取得
            '行の位置づけ
            While drd.Read()
                'データ取得文字列の初期化
                msgstr = ""
                '列数の取得
                For i = 0 To drd.FieldCount - 1
                    'データの取得
                    msgstr &= drd.GetValue(i) & " "
                Next
                'メッセージボックス出力
                MessageBox.Show(msgstr, "DataReader", MessageBoxButtons.OK, 
                                              MessageBoxIcon.None)
            End While
            '5.OdbcDataReaderオブジェクトを閉じる
            drd.Close()
            '6.コネクション切断
            con.Close()
            '7.オブジェクトの破棄
            con.Dispose()
            com.Dispose()
            'エラー処理
        Catch ex As System.Data.Odbc.OdbcException
            'エラー処理ルーチンを記述
            msgstr = "▲▼接続不可▲▼"
            MessageBox.Show(msgstr, "▲▼接続不可▲▼", MessageBoxButtons.OK, 
                                              MessageBoxIcon.None)
        End Try
    End Sub
End Class