execSQL() mit UPDATE aktualisiert nicht

Ich versuche, mit rawQuery und execSQL Methoden für die Manipulation meiner Datenbank, anstelle der .update, .insert usw. Ich versuche ein UPDATE durchzuführen mit folgenden code:

db.execSQL("UPDATE configuration " +
                "SET number_fields = " + number_fields + ", "
                + "frequency = " + frequency + ", "
                + "ag = " + ag + ", "
                + "number_alarms = " + number_alarms + ", "
                + "failed_rapper = " + failed_rapper + ", "
                + "max_mv = " + max_mv + ", "
                + "max_nav = " + max_nav + " "
                + "WHERE serial_id = " + Integer.toString(id) + ";");

Nach dieser Aktion gibt es ein Protokoll, dass die Staaten eine Aktualisierung stattgefunden hat und es scheint zu funktionieren, doch wenn ich versuche eine select-Anweisung auf die Tabelle, es gibt mit der folgenden Fehlermeldung:

06-10 10:01:47.564: W/System.err(3815): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

Nun habe ich durchgeführt, die in der gleichen WÄHLEN, auf verschiedene Daten in Android, die ich manuell eingefügt, mit SQLite Database Browser und es funktioniert gut. Ich habe auch ausgeführt, dass gleiche UPADTE in die SQLite-Browser, und es hat dort gearbeitet. Daher weiß ich, dass das problem ist, dass der UPDATE-Befehl funktioniert nicht beim laufen auf Android.

Frage: Warum funktioniert der UPDATE-Befehl funktioniert nicht in der execSQL() Methode?

  • Auf den ersten Blick Ihre UPDATE-Anweisung korrekt aussieht. Haben Sie überprüft, dass alle Spaltennamen korrekt geschrieben sind (oft bekommt mir)? Darüber hinaus sind Sie sicher, dass alle Variablen initialisiert sind und gültige Werte enthalten, die für die Spalten, wo Sie eingefügt werden in die Tabelle? (Schrittweise mit dem debugger kann dies zu überprüfen). Wenn diese beiden Dinge korrekt sind, könnten Sie vielleicht posten Sie Ihre WÄHLEN Sie die Option code, da das ist, wo der eigentliche Fehler Auftritt.
  • es scheint, dass die Tabelle ist nicht initialisiert, mit der richtigen Werte, und bei der Aktualisierung der neuen Werte nicht zu Begehen. Vielen Dank für die Hilfe.
  • Ich sehe! Froh, dass Sie es herausgefunden hat. Hat die execSQL Methode am Ende der Arbeit für ein update, wenn die Tabelle initialisiert wird, richtig?
  • Ja, es ist Arbeit. Danke.
InformationsquelleAutor TronicZomB | 2013-06-10
Schreibe einen Kommentar