Mise à jour, Ajouter des lignes à un datatable VB.Net
J'ai essayé tellement dur pour résoudre mon problème, voici ce que je suis en train de faire:
- J'ai un fichier XML que je charge dans un dataset("ds") à l'aide de
ReadXML
,
plusieurs tables sont remplies dans le dataset, celui que je suis concerné
sur est ("SalesReceiptRet") et je vais y réfèrent comme à la source
table. - J'ai une autre table dans la base de données MS Access, je le charge dans les mêmes
dataset à l'aide d'OleDBAdapter.Fill
, dans un datatable nommé ("dtTarget")
et le nom de l'adaptateur est ("dbAdapter").
Je veux aller à travers tous les enregistrements de la table source, un champ de recherche appelé ("TxnID") pour localiser l'enregistrement dans la table cible. Si elle n'existe pas, ajouter, si ce n'est faire une autre validation et remplacer/mettre à jour à l'aide de la source de la ligne.
voici le code:
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
'Initialize command builder
Dim dbCommandBuilder As New OleDb.OleDbCommandBuilder(dbAdapter)
'Set the primary keys
ds.Tables("dtTarget").PrimaryKey = New DataColumn() {ds.Tables("dtTarget").Columns("TxnID")}
'Find rows
Dim dr As DataRow
Dim lookupRow As DataRow
For Each dr In ds.Tables("SalesReceiptRet").Rows
lookupRow = ds.Tables("dtTarget").Rows.Find(dr.Item(0))
'If the a row with a similar TxnID exists, do the following validation
If Not (lookupRow Is Nothing) Then
If lookupRow.Item(8).ToString <> "Regular" Then
'do something here to overwrite/update the matching row
End If
Else
'If the row does not exist, import it
ds.Tables("dtTarget").ImportRow(dr)
End If
Next
'Update Access
dbAdapter.Update(ds, "dtTarget")
dbConnection.Close()
End Sub
Peut-être que je besoin de mentionner que les deux tables ont exactement les noms de colonnes à l'exception de l'Accès "dtTarget" a d'autres, qui ne semble pas être la cause de problème au moins avec l'importation de ligne.
Pensées, s'il vous plaît?
- Qu'est-ce que votre code en train de faire maintenant? N'est-il pas de mise à jour? N'est-il pas de l'importation? Est-il de lancer une erreur?
- C'est de l'importation de bien, mais pas de mise à jour car je n'ai pas écrit quelque chose pour elle de le faire
Vous devez vous connecter pour publier un commentaire.
Cela devrait vous aider à démarrer,
Pour plus d'aide à l'Accès et à l'insertion /mise à Jour sur la carte, voir ce lien
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataset/thread/958e6d51-725a-4649-8fc0-79a831f8f37e