DataSetの二つ目のテーブル

解決


かず  2007-10-15 07:12:22  No: 137812

下記のような手順でMDBファイルの内容をデータグリッドに表示する
ことができました。(VB2005)
#ほとんどサンプル借用です

応用として、同一MDBファイルの中にある別テーブル(たとえばTBL2)を

datset1.Tables(1)

として使えるようにするにはどのようにしたらいいのでしょうか?

Select Busho,ID_B from TBL2 where ID_B >0

のようなSelect文の結果をTables(1)に入れたいわけです。

'データベース接続オブジェクト
Dim dbcon0 As New OleDb.OleDbConnection
dbcon0.ConnectionString= _ 
    "provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=C:\test.mdb"
dbcon0.Open()
'データセット
Dim datset1 As New DataSet
'データアダプタ
Dim dbadpt1 As New OleDb.OleDbDataAdapter
'コマンド
Dim dbcmdSelect As New OleDb.OleDbCommand
'セレクトコマンド作成
dbcmdSelect.CommandText = _
    "Select Bangou,Namae,ID from TBL where ID >0" dbcmdSelect.Connection = dbcon0
'データアダプタにセレクトコマンドを設定
dbadpt1.SelectCommand = dbcmdSelect
'データセット初期化
datset1.Clear()
'データセットにデータを入れる
dbadpt1.Fill(datset1)
'データセットを使う
Me.DataGrid1.DataSource = datset1.Tables(0)


YuO  2007-10-15 20:41:00  No: 137813

> 応用として、同一MDBファイルの中にある別テーブル(たとえばTBL2)を
> datset1.Tables(1)
> として使えるようにするにはどのようにしたらいいのでしょうか?

dbadpt2.Fill(datset1, "NewTable")
のように,名前を付けてFillしてやればよいです。

この方法だと,
datset1.Tables("NewTable")
のように名前でのアクセスもできます。
# ここの名前は,DB上の名前とは (当然ながら) 別物です。


かず  2007-10-17 05:36:13  No: 137814

できました!
ありがとうございました!

#しかしヘルプを見てもこのことについては書いていないようですね。
#不思議・・・


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加