SQLite-Datenbank Probleme

undertaker

Mitglied
Hallo zusammen,

ich habe eine SQLite Datenbank mit der Tabelle "test". Diese hat zwei Spalten, "feld1" und "feld2". Ich möchte jetzt die Tabelle mit insert füllen und will das folgendermaßen machen:

Java:
SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
ContentValues cw = new ContentValues();
cw.put("feld1", 2);
cw.put("feld2", 25);

long id = db.insert("test", null, cw);

Die "id" ist nach Ausführung immer -1, was bedeutet, dass es nicht geklappt hat. Kann mir jemand sagen wo das Problem liegt? komme einfach nicht drauf... Danke schonmal 🙂

Edit: Außerdem sagt LogCat mir, dass es die Tabelle "test" nicht gibt, was aber nicht stimmt.
 
Zuletzt bearbeitet:
Hallo zusammen,

ich habe eine SQLite Datenbank mit der Tabelle "test". Diese hat zwei Spalten, "feld1" und "feld2". Ich möchte jetzt die Tabelle mit insert füllen und will das folgendermaßen machen:

Java:
SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
ContentValues cw = new ContentValues();
cw.put("feld1", 2);
cw.put("feld2", 25);

long id = db.insert("test", null, cw);

Die "id" ist nach Ausführung immer -1, was bedeutet, dass es nicht geklappt hat. Kann mir jemand sagen wo das Problem liegt? komme einfach nicht drauf... Danke schonmal 🙂

Edit: Außerdem sagt LogCat mir, dass es die Tabelle "test" nicht gibt, was aber nicht stimmt.

Benutz mal anstatt der insert Methode die insertOrThrow methode, fang die Exception ab und poste die Exception mal.
 
@diel2001:

Ja, hab schon mehrmals überprüft ob alles richtig geschrieben ist.

@Bolle52:

Also ich bekomme das hier:
06-19 13:06:06.449: I/SqliteDatabaseCpp(29331): sqlite returned: error code = 1, msg = no such table: test, db=/data/data/packagename/databases/locdb.sqlite

und als Exception die hier:
06-19 13:07:07.129: W/System.err(29331): android.database.sqlite.SQLiteException: no such table: test: , while compiling: INSERT INTO text(feld1,feld2) VALUES (?,?)


Liegt der Fehler vielleicht daran, dass ich die Tabelle manuell mit einem SQLite-Database-Viewer erstellt habe und die neue DB nicht auf das Tablett kopiert wird? Ich kann z.B. von der gleichen DB aber von anderen Tabellen wunderbar SELECT's ausführen
 
Den Grund, warum kein Insert gemacht werden kann, haben wir jetzt gefunden 😉

Die Frage kann ich dir nicht beantworten warum die Tabelle nicht vorhanden ist, da ich deinen deploymentprozess nicht kenne.

Was spricht denn dagegen die Tabelle von deiner App selbst anlegen zu lassen?
 
Bist du denn an SQLite gebunden? Es gibt so viele schöne in purem Java geschriebene SQL-Datenbanken... h2, hsqldb, derby,... dann lerst du auch gleich JDBC und nicht sowas proprietäres.
 
Okay also der Fehler lag daran, dass das Android-Projekt schon stand und ich einen kleinen Parser integrieren musste der in eine Tabelle schreibt, die mein Vorgänger noch nicht angelegt hatte. Er hat den Code anscheinend so aufgebaut, dass die Datenbank nur einmal aufs Tablett kopiert wird. Wenn ich die App auf dem Tablett deinstalliere und wieder drauflade ist auch die neue Datenbank mit meiner Tabelle vorhanden. Klar hätte man die Tabelle auch von der App selbst anlegen lassen können, aber irgendwie wollte ich doch wissen warum das nicht geklappt hat 🙂 Hoffe mal das ich das so richtig verstanden habe und das Problem nicht doch irgendwo anders liegt aber aufjedenfall klappts jetzt. Danke für alle Antworten 🙂
 

Zurück
Oben