vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Update Problem 
Autor: DizkoStu
Datum: 15.03.07 23:21

Hallo,

ich probiere Heute schon den ganzen Tag einen Transfer neuer Datensätze von einer AccessDB zur anderen hinzubekommen.
Die Datensätze die setadded sind werden problemlos in die 2. db gechrieben.
Das Problem taucht dann bei den setmodified Datensätzen auf. Sie werden vom Dataadapter erkannt und angezeigt aber die Änderungen werden dann in der 2. db nicht übernommen.
Es kommt auch keine Fehlermeldung. Die Daten sind absolut gleich geblieben.

Die beiden Datenbanken haben fast die gleiche Struktur.
db1 : ID als Autowert, Name als Text, Vorname als Text
db2 : ID als Integer, Name als Text, Vorname als Text


Ich bin jedenfalls absolut ratlos. Vielleicht habt Ihr ja eine Idee.

MFG
DizkoStu

Public Sub Vergleich()
        Dim DB_A As DataSet = New DataSet()
        Dim DB_B As DataSet = New DataSet()
        Dim connectstring_A As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
          "Source=table_A.mdb;"
        Dim connectstring_B As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
        "Source=table_B.mdb;"
        Dim SelectCust_A As String = "SELECT ID,Name,Vorname FROM Customer_A"
        Dim SelectCust_B As String = "SELECT ID,Name,Vorname FROM Customer_B"
 
        Dim KundeAdapter_A As OleDbDataAdapter = New OleDbDataAdapter( _
          SelectCust_A, GetAccess(connectstring_A))
        Dim Kunde_ACB As OleDb.OleDbCommandBuilder = New _
        OleDb.OleDbCommandBuilder(KundeAdapter_A)
        KundeAdapter_A.Fill(DB_A, "Customer_A")
 
        Dim KundeAdapter_B As OleDbDataAdapter = New OleDbDataAdapter( _
          SelectCust_B, GetAccess(connectstring_B))
        Dim Kunde_BCB As OleDb.OleDbCommandBuilder = New _
        OleDb.OleDbCommandBuilder(KundeAdapter_B)
        KundeAdapter_B.Fill(DB_B, "Customer_B")
 
        Dim row As DataRow
        Dim row2 As DataRow
        Dim modify As DataRow()
        KundeAdapter_B.UpdateCommand = Kunde_BCB.GetUpdateCommand
        'KundeAdapter_B.UpdateCommand.Parameters.AddWithValue("@ID", 
        ' SqlDbType.Int)
        'KundeAdapter_B.UpdateCommand.Parameters.AddWithValue("@Name", 
        ' SqlDbType.NText)
        'KundeAdapter_B.UpdateCommand.Parameters.AddWithValue("@Vorname", 
        ' SqlDbType.NText)
 
        For Each row In DB_A.Tables("Customer_A").Select()
            modify = DB_B.Tables("Customer_B").Select("ID = " & row("ID"))
            If modify.Length > 0 Then
                For Each row2 In modify
                    If Not compareRow(row, row2) Then
                        row.SetModified()
                    End If
                Next
            Else
                row.SetAdded()
            End If
        Next
        MsgBox(KundeAdapter_B.Update(DB_A, "Customer_A").ToString)
    End Sub
 
    Function GetAccess(ByVal cs As String) As System.Data.OleDb.OleDbConnection
        Dim cnn As New System.Data.OleDb.OleDbConnection()
        With cnn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = cs
        End With
        Return (cnn)
    End Function
 
    Public Function compareRow(ByVal rowA As DataRow, ByVal rowB As DataRow) As _
      Boolean
        ' Vergleich der beiden Datarow Objekte
        compareRow = True
        Dim i As Integer
        For i = 0 To rowA.ItemArray.Length - 1
            If Not rowA(i).ToString = rowB(i).ToString Then Return False
        Next
    End Function
[u]
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Update Problem908DizkoStu15.03.07 23:21
Re: Update Problem504ModeratorFZelle16.03.07 08:06
Re: Update Problem482DizkoStu16.03.07 08:21
Re: Update Problem497ModeratorFZelle16.03.07 09:30
Re: Update Problem473DizkoStu16.03.07 10:06
Re: Update Problem488ModeratorFZelle16.03.07 11:16
Re: Update Problem529DizkoStu16.03.07 11:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel