DataAdapter.Fill 全レコード取得 [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

テーブルの全レコード取得

DataAdapterオブジェクトのFillメソッドを使って、テーブルから全レコードを取得するサンプルプログラムです。

Command.ExecuteReaderメソッドで全レコードを取得するサンプルはこちら

MDB版 サンプルプログラム

社員テーブルから全レコードを取得する処理を、Functionプロシージャ(関数)として実装する。

ソースリストの枠内をクリックすると全選択できます。

Imports System.Data.OleDb

Public Class FormSelectAll2
    Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "
    ' 自動生成部分省略
#End Region

    '------------------------------------------------------------
    ' フォームロード処理
    '------------------------------------------------------------
    Private Sub FormSelectAll2_Load _
        (ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        ' 全レコードを取得してコンソールに出力
        Dim syain As New DataTable()
        Dim msg As String
        Dim strOut As String
        Dim i As Integer

        ' 全レコード取得・その2
        msg = getSyainAll(syain)
        If msg = "" Then
          ' 取得レコードの確認
          For i = 0 To syain.Rows.Count - 1
            strOut = (i + 1).ToString + "件目==>"
            strOut += "社員コード:" + CStr(syain.Rows(i).Item(0))
            strOut += ", 氏名:" + CStr(syain.Rows(i).Item(1))
            strOut += ", カナ:" + CStr(syain.Rows(i).Item(2))
            strOut += ", 部門コード:" + CStr(syain.Rows(i).Item(3))
            strOut += vbCrLf + Space(9)
            strOut += " 入社年月日:" + CStr(syain.Rows(i).Item(4))
            strOut += ", 更新日時:" + CStr(syain.Rows(i).Item(5))
            Trace.WriteLine(strOut)
          Next
        Else
          ' レコードが取得できなかった時の処理
          MessageBox.Show(msg, "エラー", MessageBoxButtons.OK)
        End If

    End Sub

    '-------------------------------------------------------------
    ' 機能:社員テーブルから全レコードを取得する
    ' 引数:ByRef DataTableオブジェクト
    ' 戻値:正 常 --> 空文字列 エラー --> エラーメッセージ
    '-------------------------------------------------------------
    Private Function _
        getSyainAll(ByRef syain As DataTable) As String

        Const SELECT_SYAIN As String = _
            "SELECT * FROM 社員テーブル ORDER BY 社員コード"
        Dim con As New OleDbConnection()
        Dim cmd As New OleDbCommand()
        Dim da As New OleDbDataAdapter()
        Dim dt As DataSet = New DataSet()

        Try
            ' DB接続文字列の設定
            ' プロジェクトフォルダ下のbinフォルダにsample.mdbを置く
            con.ConnectionString = _
            "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
            Application.StartupPath & "\sample.mdb"

            ' コネクションの設定
            cmd.Connection = con

            ' SQL文の設定
            cmd.CommandText = SELECT_SYAIN

            ' データを取得する 
            da.SelectCommand = cmd
            da.Fill(syain)

            ' 取得レコード数のチェック
            If syain.Rows.Count = 0 Then
                ' レコードがなかった時の処理
                Return "社員テーブルにレコードがありません"
            Else
                Return ""
            End If

        Catch ex As Exception
            ' 例外が発生した時の処理
            Return ex.ToString

        End Try

    End Function

End Class