Veröffentlicht 23. April 200916 j Hallo Leute, für alle die nur darauf warten das ich eine neue Frage stelle (), hier meine "Freitags-Frage": Ich möchte eine Zeile im DataSet ändern, hier der Code (der funktioniert) um eine Zeile zu ändern die aufgrund eines ListBox-Eintrags geändert wird: Dim dblPos As Double dblPos = Me.BindingContext(Me.DataView1).Position With DataSet21.Tables("Prozessdaten 2641").Rows(dblPos) .Item("freig PCD") = "x" .Item("status") = "1" End With OleDbDataAdapter1.Update(DataSet21, "Prozessdaten 2641") Theoretisch müsste es ja einfacher sein das DataSet ohne ListBox-Eintrag zu ändern, einfach in dem ich den PKey der Tabelle angebe und diese Zeile dann wie ich es möchte verändert wird. Nur wie kann ich das dann angeben?? Danke im voraus. Viele Grüße Informatikerin
24. April 200916 j DbDataAdapter.UpdateCommand via SQL-Statement neu schreiben. Und dann einfach die Update()-Methode aufrufen.
27. April 200916 j Hallo Leute, ich hab das schon mal mit der OleDbCOmmand versucht, es hat bei mir leider nicht funktioniert. Das ist mein Code: Me.OleDbDataAdapter1.Fill(DataSet31) Dim cmd As OleDb.OleDbCommand Dim cmdtest As OleDb.OleDbCommandBuilder Dim parm As OleDb.OleDbParameter cmd = New OleDb.OleDbCommand("UPDATE Prozessdaten 2641 SET status = 3" & _ "WHERE SAP-Nr = 4444", Me.OleDbConnection1) 'cmd.Parameters.Add("@CompanyName", OleDb.OleDbType.VarChar, 8, "CompanyName") 'parm = cmd.Parameters.Add("@oldCustomerID", OleDb.OleDbType.VarChar.Char, 8, "CustomerID") 'gefunden bei Msdn Me.OleDbDataAdapter1.UpdateCommand = cmd OleDbDataAdapter1.Update(DataSet31, "Prozessdaten 2641") MsgBox("Das PDB mit der SAP-Nr: " & strSuchText & " wurde archiviert", MsgBoxStyle.Information, "Information") Weiß vielleicht jemand wo mein Fehler liegt? Die Anwendung sagt gar nichts, es passiert einfach nur nichts in der DB. Danke im voraus Viele Grüße informatikerin
27. April 200916 j cmd = New OleDb.OleDbCommand("UPDATE Prozessdaten 2641 SET status= @statusOrg WHERE SAP-NR = " & strSuchText, Me.OleDbConnection1) cmd.Parameters.Add("@status", OleDb.OleDbType.Integer, 8, "3") parm = cmd.Parameters.Add("@statusOrg", OleDb.OleDbType.Integer, 8, "status") klappt aber immer noch nicht
27. April 200916 j Weiß vielleicht jemand wo mein Fehler liegt? Die Anwendung sagt gar nichts, es passiert einfach nur nichts in der DB. Das DataSet wird aber geändert? Evtl. ist der DataAdapter geschlossen (wobei, dann sollte eigentlich eine Exception kommen).
27. April 200916 j Hallo, ich hab jetzt nen kompletten "Work-around" gefunden, kein Eingabefeld das erst mit der DB "verknüpft" werden muss sondern eine ComboBox die als Source mein DataView hat. Nun kann ich wieder den Code aus meinem ersten Post benutzen. Eigentlich ist das auch die bessere Lösung, da ich dann nicht zig if-abfragen machen muss und vorgegebene (richtige) werte einfacher sind wenn man sie auswählen kann. Trotzdem vielen Dank TDM für deine Hilfe! Lg Simone
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.