ADO.NETでsdfファイルからmdbファイルへテーブル(TBL1)を移行させたいと思っています。
以下のようなコードでDataSetをコピーできないか試しましたが、移行できません。
sdf、mdbともテーブルのカラムの構造は同一です。
mdbの方にはレコードが空のテーブルが用意してあります。
何が間違っているのでしょうか?お教えいただけると助かります。
SDF
Dim con As SqlCeConnection = DBUtility.GetConnection()
con.Open()
Dim strSQL As String
strSQL = "select * from TBL1"
Dim adapter As SqlCeDataAdapter = _
New SqlCeDataAdapter(New SqlCeCommand(strSQL, con))
con.Close()
Dim ds1 As DataSet = New DataSet()
adapter.Fill(ds1, "TBL1")
Dim con2 As OleDbConnection = DBUtility.GetOLEConnection()
con2.Open()
'MDB
Dim strSQL2 As String
strSQL2 = "select * from TBL1"
Dim adapter2 As OleDbDataAdapter = _
New OleDbDataAdapter(New OleDbCommand(strSQL2, con2))
Dim ds2 As DataSet = New DataSet()
ds2 = ds1.Copy
Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2)
adapter2.Update(ds2, "TBL1")
todo36さん、ありがとうございました。
基本的なことでした。
とりあえず、以下のようなコードで実行できています。
またよろしくお願いします。
<前略>
ds2 = ds1.Copy
For Each myROW As DataRow In ds2.Tables("TBL1").Rows
myROW.AcceptChanges()
myROW.SetAdded()
Next
Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2)
adapter2.Update(ds2, "TBL1")
お礼
todo36さん、ありがとうございました。 基本的なことでした。 とりあえず、以下のようなコードで実行できています。 またよろしくお願いします。 <前略> ds2 = ds1.Copy For Each myROW As DataRow In ds2.Tables("TBL1").Rows myROW.AcceptChanges() myROW.SetAdded() Next Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2) adapter2.Update(ds2, "TBL1")