Alors, voilà:OleDbCommandBuilder et le déplacement des données accross tables
J'ai besoin de copier les données de la table dans la base de données Access, dans une autre table d'une autre base de données Access.
Les noms des colonnes des tables sont les mêmes, à l'exception du fait que la table FROM a 5 colonnes, le TO table a 6.
voici mon code:
dsFrom.Clear()
dsTO.Clear()
daFrom = Nothing
daTO = Nothing
conn_string1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="etc.mdb;"
conn_string2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="database.mdb;"
query1 = "Select * from nomenclator_produse"
query2 = "Select * from nomenclator_produse"
Conn1 = New OleDbConnection(conn_string1)
conn2 = New OleDbConnection(conn_string2)
Conn1.Open()
conn2.Open()
daFrom = New OleDbDataAdapter(query1, Conn1)
daTO = New OleDbDataAdapter(query2, conn2)
daFrom.AcceptChangesDuringFill = False
dsFrom.HasChanges()
daFrom.Fill(dsFrom, "nomenclator_Produse")
dsFrom.HasChanges()
Dim cb = New OleDbCommandBuilder(daFrom)
dsTO = dsFrom.Copy
daTO.UpdateCommand = cb.GetUpdateCommand
daTO.InsertCommand = cb.GetInsertCommand
daTO.Update(dsTO, "nomenclator_produse")
Parce que la table FROM a 5 lignes et l'autre a 6, j'essaie d'utiliser la InsertCommand générée par le DataAdapter de la première table.
Cela fonctionne, seulement qu'il insère les données de FROMTABLE dans le même FROMTABLE, au lieu de TOTABLE.