Hallo zusammen,
ich habe ein für mich unverständliches Phänomen beim Inserten/Updaten in eine kleine SQLite-DB.
Ganz einfaches Formular mit ein paar Textboxen und 2 Buttons. In eine Textbox wird ein EAN-Code eingegeben, existiert dieser schon in der DB werden die einzelnen Spalten bzw. Daten dazu in den Textboxen und im Dropdown angezeigt, existiert er noch nicht in der DB kommt eine Abfrage, ob er neu angelegt werden soll. Bis dahin funktioniert alles auch einwandfrei. Allerdings kommt es sehr häufig und ohne jeglichen erkennbaren Grund vor, daß weder Änderungen beim zu ändernden Datensatz übernommen werden noch der neue Datensatz angelegt wird. Man drückt auf Speichern im Form und es passiert ausser der Sanduhr garnix. Wenn er dann fertig ist mit rumrödeln steht wieder der alte Datensatz ohne die Änderungen da(der Datensatz wird nach dem Ändern/Anlegen neu aufgerufen) bzw. der neue ist nicht angelegt. Paar Sekunden/Minuten später funktioniert alles mehrmals hintereinander problemlos als wäre nie was gewesen. Hier der Coder für die Updates:
[highlight=vbnet]
Private Sub editean()
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLiteCommand
Try
SQLconnect.ConnectionString = "Data Source=" & DBPath & ";"
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = "UPDATE EAN SET Hersteller = '" & txtHersteller.Text & "', Produkt = '" & txtProdukt.Text & "', Preis = '" & txtPreis.Text & "', Kommentar1 = '" & txtKommentar1.Text & "', Kommentar2 = '" & txtKommentar2.Text & "', Kategorie = '" & cmbCategory.SelectedItem & "' WHERE EAN = '" & txtEAN.Text & "'"
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Catch es As Exception
MessageBox.Show("Fehler")
End Try
End Sub
[/highlight]
Also eigentlich nix wildes, oder gibt es irgendwo ein Timeout o.ä.? Kennt jemand dieses Problem?
EDIT: Die MessageBox "Fehler" hab ich später testweise eingebaut, und wenn es mit dem Update nicht klappt kommt auch diese Fehlermeldung... ich hab aber keine Ahnung warum....
ich habe ein für mich unverständliches Phänomen beim Inserten/Updaten in eine kleine SQLite-DB.
Ganz einfaches Formular mit ein paar Textboxen und 2 Buttons. In eine Textbox wird ein EAN-Code eingegeben, existiert dieser schon in der DB werden die einzelnen Spalten bzw. Daten dazu in den Textboxen und im Dropdown angezeigt, existiert er noch nicht in der DB kommt eine Abfrage, ob er neu angelegt werden soll. Bis dahin funktioniert alles auch einwandfrei. Allerdings kommt es sehr häufig und ohne jeglichen erkennbaren Grund vor, daß weder Änderungen beim zu ändernden Datensatz übernommen werden noch der neue Datensatz angelegt wird. Man drückt auf Speichern im Form und es passiert ausser der Sanduhr garnix. Wenn er dann fertig ist mit rumrödeln steht wieder der alte Datensatz ohne die Änderungen da(der Datensatz wird nach dem Ändern/Anlegen neu aufgerufen) bzw. der neue ist nicht angelegt. Paar Sekunden/Minuten später funktioniert alles mehrmals hintereinander problemlos als wäre nie was gewesen. Hier der Coder für die Updates:
[highlight=vbnet]
Private Sub editean()
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLiteCommand
Try
SQLconnect.ConnectionString = "Data Source=" & DBPath & ";"
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = "UPDATE EAN SET Hersteller = '" & txtHersteller.Text & "', Produkt = '" & txtProdukt.Text & "', Preis = '" & txtPreis.Text & "', Kommentar1 = '" & txtKommentar1.Text & "', Kommentar2 = '" & txtKommentar2.Text & "', Kategorie = '" & cmbCategory.SelectedItem & "' WHERE EAN = '" & txtEAN.Text & "'"
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Catch es As Exception
MessageBox.Show("Fehler")
End Try
End Sub
[/highlight]
Also eigentlich nix wildes, oder gibt es irgendwo ein Timeout o.ä.? Kennt jemand dieses Problem?
EDIT: Die MessageBox "Fehler" hab ich später testweise eingebaut, und wenn es mit dem Update nicht klappt kommt auch diese Fehlermeldung... ich hab aber keine Ahnung warum....
Comment