vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück

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

ADO.NET / Datenbanken
DataTable.Merge führt zu falschem Ergebnis 
Autor: Achim 49
Datum: 06.02.18 18:46

Vorgabe: Access Datenbank mit einer Tabelle 'Pegel' mit 3 Feldern 'Datum' [DateTime], 'Ort' [String 50] und 'Hoehe' [Integer]; Primärschlüssel auf 'Datum' und 'Ort'.
Ziel: Mit Daten aus verarbeiteten .CSV-Dateien vereinen (nur hinzufügen; geänderte Daten nicht übernehmen).
Realisierung: Tabelle 'Pegel' clonen; .CSV-Daten zu Clone-Tabelle hinzufügen; beide Tabellen 'Mergen'.

Mit 'table.GetChanges(DataRowState.Added)' sollten die neu hinzugefügten Datensätze zurückgegeben werden. Statt dessen erhalte ich diese Datensätze + die bereits vorher vorhandenen Datensätze über 'DT.GetChanges(DataRowState.Unchanged)' gelistet.
Dadurch werden auch keine Daten mit der Update-Funktion zurückgeschrieben.

Wer kann mir helfen?

    Private Dateiname As String = _
      "c:\users\achim\desktop\rheinpegel\Test#1_W-N.csv"
    Private DbName As String = "c:\users\achim\desktop\rheinpegel\db1.mdb"
    Private Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data" _
      & _
      "Source=" & DbName)
    Private DA As New OleDbDataAdapter("SELECT * FROM Pegel;", Conn)
    Private CB As New OleDbCommandBuilder(DA)
    Private DT As New DataTable
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            Conn.Open()
            DA.Fill(DT)
            Conn.Close()
 
            DT.PrimaryKey = New DataColumn() {DT.Columns("Datum"), DT.Columns( _
              "Ort")}
            Grid1.DataSource = DT
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles _
      btnStart.Click
        Dim dt2 As DataTable = CSV2Table(DT.Clone)
        DT.Merge(dt2, True)
 
        'Nur zur Überprüfung des Ergebnisses:
        Dim s As String = ""
        Dim DTt As DataTable
        DTt = DT.GetChanges(DataRowState.Unchanged) : If Not IsNothing(DTt) _
          Then s += "  Unv.: " & DTt.Rows.Count.ToString
        DTt = DT.GetChanges(DataRowState.Added) : If Not IsNothing(DTt) Then s _
        += "  Add.: " & DTt.Rows.Count.ToString
        DTt = DT.GetChanges(DataRowState.Modified) : If Not IsNothing(DTt) Then _
        s += "  Mod.: " & DTt.Rows.Count.ToString
        DTt = DT.GetChanges(DataRowState.Deleted) : If Not IsNothing(DTt) Then _
        s += "  Del.: " & DTt.Rows.Count.ToString
        MsgBox(s,, "Merged")
 
        Conn.Open()
        Dim i As Integer = DA.Update(DT)
        'Nur zur Überprüfung des Ergebnisses:
        MsgBox(i,, "Zurückgeschrieben")
        Conn.Close()
    End Sub
 
    Private Function CSV2Table(ByVal DT2 As DataTable) As DataTable
        :
        'In einer Schleife Datensätze (Anzahl > 3.000) einlesen
           DT2.Rows.Add({dDateTime, sOrt, iPegel})
 
        DT2.AcceptChanges()
        CSV2Table = DT2
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataTable.Merge führt zu falschem Ergebnis372Achim 4906.02.18 18:46
Re: DataTable.Merge führt zu falschem Ergebnis175Manfred X07.02.18 23:19
Re: DataTable.Merge führt zu falschem Ergebnis152Achim 4909.02.18 14:41
Re: DataTable.Merge führt zu falschem Ergebnis159Manfred X09.02.18 15:29
Re: DataTable.Merge führt zu falschem Ergebnis166Franki09.02.18 04:13
Re: DataTable.Merge führt zu falschem Ergebnis163effeff09.02.18 13:51
Re: DataTable.Merge führt zu falschem Ergebnis154Manfred X09.02.18 15:48
Re: DataTable.Merge führt zu falschem Ergebnis145effeff10.02.18 15:14
Re: DataTable.Merge führt zu falschem Ergebnis139Manfred X10.02.18 18:23
Re: DataTable.Merge führt zu falschem Ergebnis153Franki10.02.18 03:58
Re: DataTable.Merge führt zu falschem Ergebnis161Achim 4909.02.18 14:25
Re: DataTable.Merge führt zu falschem Ergebnis158Franki10.02.18 03:48
Re: DataTable.Merge führt zu falschem Ergebnis152effeff10.02.18 15:20
Re: DataTable.Merge führt zu falschem Ergebnis148Achim 4910.02.18 17:23
Re: DataTable.Merge führt zu falschem Ergebnis158Manfred X10.02.18 18:04
Re: DataTable.Merge führt zu falschem Ergebnis150Achim 4911.02.18 09:30

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-2018 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