1.データセット(データベースに非接続のキャッシュ)
データセットにデータを取得する( .Fill )
< .Fillメソッド >
第1引数 レコードの内容を取得するDataSetオブジェクト
第2引数 テーブル名
2.データセットのデータを参照する
データベースのテーブル = DataTableオブジェクト
↓
レコードの内容としてRowsプロパティ
3.データセットのデータを配列に取得
DataRowオブジェクトはRowsプロパティにインデックスを指定して取得
DataRowオブジェクトのItemArrayプロパティを使うと
DataSetオブジェクトのテーブルデータ(レコード)を
配列に取得できる
-- 基本形 ----------------------------------------------------------------
Dim dSet As DataSet = New DataSet
Dim dAdp As OleDbDataAdapter
Dim ocn As OleDbConnection = New OleDbConnection
ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Data Source = D:\**.mdb; Persist Security Info=False"
dAdp = New OleDbDataAdapter("SELECT * FROM テスト", ocn )
dAdp.Fill( dSet , "t_テスト" )
------------------------------------------------------------------------
'レコード数
Dim rNum As Integer
rNum = dSet.Tables("t_テスト").Rows.Count
'配列
Dim dRow As DataRow
Dim RecArray() As Object
For Each dRow In dSet.Tables("t_テスト").Rows
RecArray = dRow.ItemArray
Next
'指定した行番号のレコードを取得
Dim dRow As DataRow
dRow = dSet.Tables("t_テスト").Rows.Item(1)
'フィールドを指定して値を取得
Dim dRow As DataRow
For Each dRow In dSet.Tables("t_テスト").Rows
Debug.Write( dRow("社員NO") & dRow("氏名")
Next
'修正
Dim cCon As OleDbCommandbuilder
dSet.Tables("t_テスト").Rows(0)("製品名") = "修正内容"
cCon = New OleDbCommandBuilder( dAdp )
dAdp.Update( dSet , "t_テスト" )
'追加
Dim dRow As DataRow
Dim cCon As OleDbCommandBuilder
dRow = dSet.Tables("t_テスト").NewRow
dRow("社員NO") = "1999"
dRow("氏名") = "山田"
dSet.Tables("t_テスト").Rows.Add( dRow )
cCon = New OleDbCommandBuilder( dAdp )
dAdp.Update( dSet, "t_テスト")
'削除
Dim dRow As DataRow
Dim cCom As OleDbCommandBuilder
dRow = dSet.Tables("t_テスト").Rows(0)
dRow.Delete()
cCom = New OleDbCommandBuilder( dAdp )
dAdp.Update( dSet, "t_テスト" )
Windows ------ データセット ------ データアダプタ ---- コネクション ---- DB
0 件のコメント:
コメントを投稿