die Tabelle aktualisiert werden (dh Impfstoffe) Struktur:android sqlite - Tabellendaten können nicht
ID- Autoinkrement Primärschlüssel
dose1_date - String
dose2_date - String
Die DatabaseAccessor
Klasse ist wie folgt. Die Methoden initDB()
und setVaccineDates
werden von einer anderen Aktivität aufgerufen. Aber die Datenbank wird nicht aktualisiert. Die protokollierte Nachricht befindet sich jedoch im logcat. Die DatabaseHelper
Klasse wird hier nicht angezeigt.
public class DatabaseAccessor {
public static DataBaseHelper myDbHelper = null;
public static SQLiteDatabase rdb = null;
public static SQLiteDatabase wdb = null;
public static synchronized final void initDB(Context context) throws Exception {
if (myDbHelper == null) {
myDbHelper = new DataBaseHelper(context);
myDbHelper.openDataBase();
rdb = myDbHelper.getReadableDatabase();
wdb = myDbHelper.getWritableDatabase();
}
}
public static void setVaccineDates(String birthDate) throws SQLException{
try {
String[] selections = null;
String qry = null;
qry = "select * from vaccines order by id";
Cursor cursor = wdb.rawQuery(qry, selections);
Log.d("update qry===== ", qry);
while (cursor.moveToNext()) {
int rowID = Integer.parseInt(cursor.getString(0));
ContentValues values = new ContentValues();
values.put("dose1_date","66666");
values.put("dose2_date","7777");
wdb.update("vaccines", values, "id=?", new String[] {String.valueOf(rowID)});
//wdb.close();
}
cursor.close();
} catch (Exception e) {
e.printStackTrace();
}
}// end of method setVaccineDates
}
Was ist zu tun?
bearbeiten: Wenn ich die wdb.close()
Linie Kommentar-, sehe ich in logcat
'06 -09 04: 21: 05,387: W/System.err (4144): java.lang.IllegalStateException: Versuch, Öffnen Sie ein bereits geschlossenes Objekt: SQLiteDatabase: /data/data/com.cloudsoft.vaccine/databases/vaccines2.db '
zu beobachten bcc nach dem Schließen Sie versuchen, wieder in der While-Schleife zu aktualisieren. – Bharatesh
Wissen Sie, ob Sie die While-Schleife erreichen? Ist dein Tisch belegt? –
@DanielK, ich sagte, die Logcat-Nachricht ist sichtbar –