- PR -

VB.NET DateTableとADODB.RecordSetの連結

1
投稿者投稿内容
chibana
常連さん
会議室デビュー日: 2005/11/25
投稿数: 32
投稿日時: 2006-01-16 15:08
 
 おつかれさまです。グリッドのデータソースにDateTableをバインド後、
 作成されたグリッドを確認するとデータがすべてNULLになります。

 Dim DataAdpt As System.Data.OleDb.OleDbDataAdapter = New                  System.Data.OleDb.OleDbDataAdapter
    Dim Rec AS ADODB.Recordset = New ADODB.Recordset()

==========================================
@ DataAdpt.Fill(dataset, Rec, "TABLE_NAME")
    grid.DataSource = dataset
==========================================
A DataAdpt.Fill(datatable, Rec)
    grid.DataSource = datatable
==========================================
※dataset、datatableの定義は省略しました。
 @だとうまくデータを取得できるのですがRec.OpenしたRecがなぜかClose
 してしまいます。

 Aではデータは取得できませんがCloseはしません。
 
 Aでいきたいのですが。
 なぜ、このような現象が・・・。
 ごぞんじのかたお願いします。
chibana
常連さん
会議室デビュー日: 2005/11/25
投稿数: 32
投稿日時: 2006-01-16 15:44
すいません、@でRecordsetが閉じるのは仕様のようです。↓
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDataOleDbOleDbDataAdapterClassFillTopic2.asp
chibana
常連さん
会議室デビュー日: 2005/11/25
投稿数: 32
投稿日時: 2006-01-16 18:05
おつかれさまです。新しいDatatableを作成して、元のものに
代入という方法でデータ取得に関しては解決できました。↓

 Dim DataAdpt As System.Data.OleDb.OleDbDataAdapter = New                  System.Data.OleDb.OleDbDataAdapter
 Dim Rec AS ADODB.Recordset = New ADODB.Recordset()
 Dim newDATATABLE As New DataTable
==========================================
A DataAdpt.Fill(newDATATABLE, Rec)
    datatable = newDATATABLE 
    grid.DataSource = datatable
==========================================

しかしこの方法だとdatatable作成時に設定した列の非表示設定が
なくなって出てきてしまいます。※他の原因かもしれませんが!!
1

スキルアップ/キャリアアップ(JOB@IT)