SQLite: SQL-Fehler oder fehlende Datenbank beim einfügen von Daten in Tabelle
Ich versuche das einfügen neuer Daten in eine SQLite-Tabelle.
- Weiß ich sicher, dass die Platzhalter-code korrekt ist, denn ich benutze es für verschiedene Tabellen und es funktioniert
- Weiß ich sicher, dass die Datenbank und die Tabelle erstellt werden und existieren, denn ich kann sehen, wie Sie in der SQLite-Browser.
Aber etwas in die SQLite-syntax der Schöpfung oder der Einfügung ist falsch, denn ich erhalte diese Fehlermeldung:
SQL-Fehler oder fehlende Datenbank
Hier ist mein code:
CREATE TABLE IF NOT EXISTS Theory_answers ("questionID" INTEGER,"answerID" INTEGER,"answerText" TEXT, "isTrue" INTEGER)
INSERT INTO Theory_answers (questionID, answerID, answerText,isTrue) VALUES ("1","1",text,"0")
- Bitte überprüfen Sie, dass, wenn die questionId ist ein Primärschlüssel???
- FWIW, können Sie den gleichen Fehler in einigen Versionen von sqlite beim einfügen mehrerer Werte auf einmal.
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollte dies sein....
Oder
Suchen auf diesem link, es schlägt Beilagen fertig sind mit einfachen Anführungszeichen um den text und keine Anführungszeichen um die zahlen...
Gibt es zwei Möglichkeiten für den Fehler, dass ich sehen kann, wenn es eigentlich in der SQL-zeigen Sie uns;
Du bist nicht beendet jede Zeile mit einer
;
, die macht SQLite nicht verstehen, dass es zwei getrennte Aussagen.Du hast vergessen zu zitieren, 'text' in der insert-Anweisung.
Normalerweise ist der Fehler, den du Angabe ist aufgrund von SQLite nicht, dass man die Datenbank, die Sie bittet, es zu öffnen, obwohl, etwas, das sehr schwer zu Debuggen, ohne zu sehen, einen code.
Wenn Sie diese Fehlermeldung bekommen, vom hinzufügen einer neuen Spalte zu/oder ändern Sie Ihre SQLite-Tabelle, ist es wahrscheinlich, weil die Tabelle immer noch in Ihrem app-cache. Die am einfachsten zu beheben, wenn Sie in der Entwicklungs-phase ist, gehen Einstellungen->Anwendungen->Ihrer App->Speicher->Daten Löschen. Und dies löscht alle zwischengespeicherten Erinnerungen.
Sonst, programmgesteuert, können Sie die TABELLE LÖSCHEN YOUR_TABLE und erstellen Sie eine neue.
Hoffe, das hilft anderen auch.
Dieses problem kann auftreten, wenn der cursor nicht geschlossen.
in der android und mehrere Sprachen , alle cursor geschlossen werden sollten, vor dem ausführen einer anderen Abfrage.
sollten Sie alle zu finden "select" - Abfrage, bevor Sie neue Abfrage, und schließen Sie alle Cursor
wenn alle cursor geschlossen ist und die Abfrage ist richtig , Dein code funktioniert einwandfrei.