2011年7月19日火曜日

→→→まとめ②

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 件のコメント:

コメントを投稿