2011年7月13日水曜日

→→→データセットにデータベースのデータを取得

OleDataAdapterオブジェクトからDataSetオブジェクトに取得して操作を行うことができる


           New OleDbDataAdapter(SQL文, ocn)




DataSetオブジェクトにレコード内容を取得するにはOleDbDataAdapterオブジェクトのFillメソッドを使う


    OleDbAdapterオブジェクト.Fill(レコード内容の保管先のDataSetオブジェクト,
                                                                                           DataSetオブジェクトのテーブル名)


Dim dSet As DataSet = New DataSet("t_x")
Dim dAdp As OleDbDataAdapter
dAdp = New OleDbAdapter("SELECT * FROM テスト",ocn)
dAdp.Fill( dSet, "t_x" )


--------------------------------------------------------------
DataSetオブジェクト  = データベース
 DataTableオブジェクト   = テーブル
    DataRowオブジェクト      =  レコード
--------------------------------------------------------------


DataSetオブジェクトはデータベースに似た構造を持ち
データベースに非接続のキャッシュです。


DataTableオブジェクトがデータベースのテーブルに対応する
       DataSet >  DataTable >  Rows
レコードの内容はDataSetオブジェクトに取得して操作を行うことができる


DataSetオブジェクトにレコードの内容を取得するにはOleDbDataAdapterオブジェクトの
Fillメソッドを使う


Fillメソッド 第1引数・・・レコードの内容を取得するDataSetオブジェクト
       第2引数・・・テーブル名を指定


DataTableオブジェクトにはレコードの内容としてRowsプロパティが含まれています
したがって、DataSetオブジェクトに含まれるDataTableオブジェクトのRowsプロパティ
使ってレコード内容を参照することができる


Rowsプロパティ   =  レコード数
Columnsプロパティ =  フィールド数


Dim i,j As Integer
Dim dSet As DataSet = New DataSet("t_テスト")
Dim dTbl As DataTable
Dim dAdp As OleDbDataAdapter
Dim ocn As OleDbConnection = New OleDbConnection
ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\***;" &
                                   "Persisit Security Info=False"
dAdp = New OleDbDataAdapter("SELECT * FROM テスト" , ocn)
dAdp.Fill( dSet, "t_テスト")
dTbl = dSet.Tables("t_テスト")
For i = 0 To dTbl.Rows.Count()  - 1
    For j = 0 To dTbl.Columns.Count()  - 1
        Debug.write( dTbl.Rows(i)(j) & ControlChars.Tab )
    Next
    Debug.WriteLine("")
Next
----------------------------------------------------------------------------
データセットのデータを参照する
  DataRowオブジェクトの集まりであるDataRowCollectionオブジェクトはRowsプロパティで取得できます
 フィールドに対応するDataColumnオブジェクトも含まれています
 DataColumnオブジェクトの集まりであるDataColumnCollectionオブジェクトはColumnsプロパティで取得できる











0 件のコメント:

コメントを投稿