Announcement

Collapse
No announcement yet.

Update/Insert auf SQLite-DB geht nur sporadisch

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update/Insert auf SQLite-DB geht nur sporadisch

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

  • #2
    Originally posted by communi View Post
    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....
    Und welchen Fehlertext hat die Exception-Instanz?

    Comment


    • #3
      Originally posted by Bernhard Geyer View Post
      Und welchen Fehlertext hat die Exception-Instanz?
      Ups, hatte ich doch im Ferabendstress völlig vergessen hinzuschreiben
      Fehlermeldung:
      The database file is locked
      database is locked

      Sowas hatte ich schon vermutet, nur wie kann ich das umgehen/ändern? Und durch was ist die Datei locked? Durch mein Programm? Durch Windows? Normalerweise wird in meinem Code überall mit SQLcommand.Dispose() und SQLconnect.Close() die Verbindung wieder sauber getrennt. Bin schon etwas ratlos....

      Comment


      • #4
        So, Fehler gefunden!! Es hat doch tatsächlich noch ein SQLconnect.Close() gefehlt, und zwar beim Auffrischen des Datensatzes im Form... betriebsblind

        Comment

        Working...
        X