Ich habe eine Android-App, die überprüfen muss, ob bereits ein Datensatz in der Datenbank vorhanden ist. Wenn nicht, verarbeiten Sie einige Dinge und fügen Sie sie schließlich ein. Lesen Sie einfach die Daten aus der Datenbank, wenn die Daten vorhanden sind. Ich verwende eine Unterklasse von SQLiteOpenHelper, um eine wiederbeschreibbare Instanz von SQLiteDatabase zu erstellen und abzurufen, von der ich dachte, dass sie sich automatisch um die Erstellung der Tabelle kümmert, wenn sie noch nicht vorhanden ist (da sich der dazu erforderliche Code in onCreate befindet (... ) Methode).
Wenn die Tabelle jedoch noch NICHT vorhanden ist und die erste Methode, die für das SQLiteDatabase-Objekt ausgeführt wird, ein Aufruf zur Abfrage (...) ist, zeigt mein Logcat den Fehler "I / Database (26434): sqlite return: error code = 1, msg = keine solche Tabelle: appdata ", und tatsächlich wird die appdata-Tabelle nicht erstellt.
Irgendwelche Ideen warum?
Ich suche nach einer Methode, um zu testen, ob die Tabelle vorhanden ist (denn wenn dies nicht der Fall ist, sind die Daten sicherlich nicht darin enthalten, und ich muss sie erst lesen, wenn ich darauf schreibe, wodurch die Tabelle erstellt wird richtig) oder eine Möglichkeit, um sicherzustellen, dass es erstellt wird und nur leer ist, rechtzeitig für diesen ersten Aufruf zur Abfrage (...)
BEARBEITEN
Dies wurde nach den beiden folgenden Antworten gepostet:
Ich glaube, ich habe das Problem gefunden. Ich habe aus irgendeinem Grund entschieden, dass für jede Tabelle ein anderer SQLiteOpenHelper erstellt werden soll, obwohl beide auf dieselbe Datenbankdatei zugreifen. Ich denke, dass das Umgestalten dieses Codes, um nur einen OpenHelper zu verwenden, und das Erstellen beider Tabellen in onCreate möglicherweise besser funktioniert ...