Hi,
um dataAdapter besser zu verstehen habe ich beschlossen für das aktuelle Projekt keine Library zu benutzen und sämtliche SQL-Befehle etc. selbst zu schreiben. Das Befüllen von DataTables funktioniert auch ohne Probleme. Nur das Speichern will nicht so recht.
Befüllen:
Speichern:
Wenn ich einen Wert ändere und Speichern drücke erkennt der DataAdapter korrekt, dass ein UpdateCommand ausgeführt werden muss (ohne Änderung kommt kein Fehler beim Speichern, bzw. wenn ich lösche kommt ein Fehler, dass kein Löschbefehl definiert ist).
Diese Meldung hier kommt beim Speichern:
Die Parameter pumpcount, pname, id sind gleichnamig mit den Einträgen in der zugehörigen DataTable. Trotzdem werden die Werte nicht an den SQL-Befehl übergeben. Wie verknüpfe ich die?
PS: Mein Ansatz ist an dieses C#-Beispiel angelehnt: docs.microsoft.com/de-de/dotne…and?view=netframework-4.8
PS2: Ich habe jetzt eine funktionierende Lösung, die den CommandBuilder benutzt.
Aber ich würde trotzdem gerne verstehen, wieso das manuelle Erstellen des Befehls nicht funktioniert.
um dataAdapter besser zu verstehen habe ich beschlossen für das aktuelle Projekt keine Library zu benutzen und sämtliche SQL-Befehle etc. selbst zu schreiben. Das Befüllen von DataTables funktioniert auch ohne Probleme. Nur das Speichern will nicht so recht.
Befüllen:
Speichern:
VB.NET-Quellcode
- Dim sqlupdate As New SqlCommand("UPDATE PumpVariant SET pumpCount = @pumpcount, pname = @pname WHERE id = @id", sqlConVersand)
- sqlupdate.Parameters.Add("@pumpcount", SqlDbType.Int)
- sqlupdate.Parameters.Add("@pname", SqlDbType.NVarChar, -1)
- sqlupdate.Parameters.Add("@id", SqlDbType.Int)
- sqlPumpVarAdapter.UpdateCommand = sqlupdate
- sqlPumpVarAdapter.Update(PumpVariant)
Wenn ich einen Wert ändere und Speichern drücke erkennt der DataAdapter korrekt, dass ein UpdateCommand ausgeführt werden muss (ohne Änderung kommt kein Fehler beim Speichern, bzw. wenn ich lösche kommt ein Fehler, dass kein Löschbefehl definiert ist).
Diese Meldung hier kommt beim Speichern:
"The parameterized query '(@pumpcount int,@pname nvarchar(max) ,@id int)UPDATE PumpVariant' expects the parameter '@pumpcount', which was not supplied."
Die Parameter pumpcount, pname, id sind gleichnamig mit den Einträgen in der zugehörigen DataTable. Trotzdem werden die Werte nicht an den SQL-Befehl übergeben. Wie verknüpfe ich die?
PS: Mein Ansatz ist an dieses C#-Beispiel angelehnt: docs.microsoft.com/de-de/dotne…and?view=netframework-4.8
PS2: Ich habe jetzt eine funktionierende Lösung, die den CommandBuilder benutzt.
Aber ich würde trotzdem gerne verstehen, wieso das manuelle Erstellen des Befehls nicht funktioniert.
Option strict = on
If it's stupid and it works it ain't stupid.
If it's stupid and it works it ain't stupid.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nils_Kr“ ()