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   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
dataAdapter.update funktioniert obwohl DataSet und Datenbank nicht gleich ... ?! 
Autor: asam
Datum: 18.12.09 17:22

Hallo zusammen,

zu Lernzwecken baue ich oft Programme aus dem Forum bzw. meiner Lektüren nach. Nun hänge ich schon zweit Tage ein einem Problem mit dem DataAdapter und .update.

Der Code schien mir einfach und verständlich, leider tut er nicht das was er soll.

Vom Ablauf her habe ich es so verstanden:

DataSet füllen -> Quelle ändern -> DataSet ändern -> upDaten und dadurch Fehler erzeugen die ausgewertet werden können ... und an der Stelle hängt es.

Eigentlich sollte doch, da DataSet und DB nicht gleich sind ein Fehler auftauchen. Passiert aber nicht. Die DB wird aktualisiert und gut ist. die vorher in der Quelle durchgeführte Änderung wird überschrieben.

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
   System.EventArgs) Handles cmdTestUpdate.Click
 
        Dim con As OleDbConnection = New OleDbConnection()
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " & " & _ 
"Data Source = " & Verz & "\data\sst.mdb"
        Dim cmd As OleDbCommand = New OleDbCommand()
        cmd.CommandText = "select strFehlerKennung, strMaschine," & _
          "strMontageNummer, strFehler from tblFehler " & _
                          "where strMontageNummer = " & Chr(34) & "1234" & Chr( _
                          34)
        cmd.Connection = con
 
        Dim ds As DataSet = New DataSet()
        Dim da As New OleDbDataAdapter(cmd.CommandText, con)
 
        ' Einlesen Dataset
        con.Open()
        da.FillSchema(ds, SchemaType.Source)
        da.Fill(ds)
        con.Close()
 
        ' Änderung in Quelle
        cmd.CommandText = "UPDATE tblFehler SET strFehler = 'geändert in" & _
          "Quelle' WHERE strMontageNummer='1234'"
        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
 
        ' Änderung in Dataset
        ds.Tables(0).Select("strMontageNummer=1234")(0)("strFehler") = _
          "geändert über Dataset"
 
        ' updaten
        da.UpdateCommand = CreateUpdateCommand(con)
 
        ' True oder False bringt keinen Unterschied
        da.ContinueUpdateOnError = False
 
        da.Update(ds)
 
        ' ds.HasErrors müsste jetzt doch eigentlich auf True stehen ???
        If ds.HasErrors Then
 
            MsgBox("Fehler")
 
        End If
 
    End Sub
 
    Function CreateUpdateCommand(ByVal con As OleDbConnection) As DbCommand
 
        Dim cmd As DbCommand = New OleDbCommand()
        cmd.CommandText = "UPDATE tblFehler " & _
        "SET strFehlerKennung = @fhlKng, strMontageNummer=@mtgNr," & _
        "strMaschine=@masch, strFehler=@fehler " & _
        "WHERE strMontageNummer=@mtgKng"
        cmd.Connection = con
 
        Dim col As DbParameterCollection = cmd.Parameters
        col.Add(New OleDbParameter("@fhlKng", OleDb.OleDbType.VarChar, 256, _
          "strFehlerKennung"))
        col.Add(New OleDbParameter("@mtgNr", OleDb.OleDbType.VarChar, 256, _
        "strMontageNummer"))
        col.Add(New OleDbParameter("@masch", OleDb.OleDbType.VarChar, 256, _
        "strMaschine"))
        col.Add(New OleDbParameter("@fehler", OleDb.OleDbType.VarChar, 256, _
        "strFehler"))
        Dim param As OleDbParameter = New OleDbParameter("@mtgKng", _
        OleDb.OleDbType.VarChar, 256, "strMontageNummer")
        col.Add(param)
        param.SourceVersion = DataRowVersion.Original
        Return cmd
 
    End Function
Normalerweise wünscht man sich keine Paralellitästverletzung, aber hier hätte ich das gerne verstanden.

Für jede Hilfe dankbar.

Gru? asam

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
dataAdapter.update funktioniert obwohl DataSet und Datenbank...2.152asam18.12.09 17:22
Re: dataAdapter.update funktioniert obwohl DataSet und Daten...1.015ModeratorFZelle19.12.09 13:22
Re: dataAdapter.update funktioniert obwohl DataSet und Daten...948asam21.12.09 11:06
Re: dataAdapter.update funktioniert obwohl DataSet und Daten...885ModeratorFZelle21.12.09 12:51
Re: dataAdapter.update funktioniert obwohl DataSet und Daten...943asam21.12.09 17:57

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