テーブルの全レコード取得
DataAdapter. Fillメソッドを使って全レコードを取得するサンプルプログラムに、Const クラスを追加して可読性を少し良くしました。
MDB版 サンプルプログラム
syain.Rows(i).Item(0)の添え字0を、syainList.Rows(i).Item(Items.SYAINCODE)のように、名前付き定数に変更して、プログラムの可読性を改善しました。
ソースリストの枠内をクリックすると全選択できます。
Imports System.Data.OleDb '----- 追加クラス ----- Public Class Items Public Const SYAINCODE As Integer = 0 Public Const SYAINSIMEI As Integer = 1 Public Const SYAINKANA As Integer = 2 Public Const BUMONCODE As Integer = 3 Public Const NYUSYABI As Integer = 4 Public Const KOSINBI As Integer = 5 End Class Public Class FormSelectAll2Kairyo Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " ' 自動生成部分省略 #End Region '------------------------------------------------------------ ' フォームロード処理 '------------------------------------------------------------ Private Sub FormSelectAll2Kairyo_Load _ (ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' 全レコードを取得してコンソールに出力 Dim syain As DataTable = New DataTable() Dim msg As String = "" Dim strOut As String = "" Dim i As Integer = 0 ' 社員テーブル全レコードの全フィールド値取得 msg = getSyainAll(syain) If msg = "" Then ' 取得レコードの確認 For i = 0 To syain.Rows.Count - 1 strOut = (i + 1).ToString + "件目==>" strOut += "社員コード:" strOut += CStr(syain.Rows(i).Item(Items.SYAINCODE)) strOut += ", 氏名:" strOut += CStr(syain.Rows(i).Item(Items.SYAINSIMEI)) If IsDBNull(syain.Rows(i).Item(Items.SYAINKANA)) Then strOut += ", カナ:Null" Else strOut += ", カナ:" strOut += CStr(syain.Rows(i).Item(Items.SYAINKANA)) End If strOut += ", 部門コード:" strOut += CStr(syain.Rows(i).Item(Items.BUMONCODE)) strOut += vbCrLf + Space(9) strOut += " 入社年月日:" strOut += CStr(syain.Rows(i).Item(Items.NYUSYABI)) strOut += ", 更新日時:" strOut += CStr(syain.Rows(i).Item(Items.KOSINBI)) Trace.WriteLine(strOut) Next Else ' レコードが取得できなかった時の処理 MessageBox.Show(msg, "\sample.mdb""エラー") End If End Sub '------------------------------------------------------------ ' 社員テーブルから全レコードを取得 '------------------------------------------------------------ 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 ds 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