Gustav Brock
Gustav at cactus.dk
Thu Feb 7 10:59:30 CST 2008
Hi Charlotte
Thanks. Yes, my task is obviously slightly more complicated ... and, of course, in most situations you operate on one database only.
I can see that you use the ImportRow method too. And as I read it, you copy a row by clearing the target first and then importing the source/remote row? But what does method Clear do here? As far as I know, Clear "erases" the row and leave it - it does not delete it.
/gustav
>>> cfoust at infostatsystems.com 07-02-2008 17:31 >>>
The thing is, you aren't just copying a table. It sounds like you're
only making a copy if one doesn't exist. Otherwise, you're making sure
the records are in sync. That's a bit more complicated than just
copying a table, so I can see why you didn't find any code specifically
for that. A datatable has a Copy method, and that would be the logical
way to copy a table, if that's all you were doing.
Here's an example of an approach we use when importing a table. The
ImportAdaptor method it calls simply returns an instantiated
OleDb.OleDbDataAdapter that has already retrieved a pre-build
dataadapter for handing that table. Maybe it will give you some ideas:
Public Sub ImportTable(ByVal table As System.Data.DataTable)
Implements IMiscData.ImportTable
Dim da As OleDb.OleDbDataAdapter =
ImportAdapter(table.TableName)
Dim dsTmp As DataSet = table.DataSet.Clone
For Each rowRemote As DataRow In table.Rows
dsTmp.Tables(0).Rows.Clear()
dsTmp.Tables(0).ImportRow(rowRemote)
dsTmp.Tables(0).Rows(0).AcceptChanges()
dsTmp.Tables(0).Rows(0).SetModified()
da.Update(dsTmp.Tables(0))
Next
dsTmp.Dispose()
End Sub
Charlotte Foust