lundi 21 décembre 2015

How to get a row from id in SQLite

Why aren't my getSetting, addSetting methods working?

public Storage getSetting(String id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_SETTINGS,
            new String[] {COLUMN_ID, COLUMN_INT, COLUMN_STRING},
            COLUMN_ID + "=?",
            new String[] { String.valueOf(id) },
            null, null, null, null);

    Storage setting = new Storage();

    if (cursor.moveToFirst()) {
        do {
            String found_id = cursor.getString(cursor.getColumnIndex(COLUMN_ID));
            if (found_id.equals(id)) {
                setting.set_value_int(cursor.getInt(cursor.getColumnIndex(COLUMN_INT)));
                setting.set_value_string(cursor.getString(cursor.getColumnIndex(COLUMN_STRING)));
            }
        }while(cursor.moveToNext());
    }
    cursor.close();
    return setting;
}


public void addSetting(Storage setting) {
    ContentValues values = new ContentValues();
    values.put(COLUMN_INT, setting.get_value_int());
    values.put(COLUMN_STRING, setting.get_value_string());
    SQLiteDatabase db = getWritableDatabase();
    db.insert(TABLE_SETTINGS, null, values);
    db.close();
}


this is how the table is initialized:

@Override
public void onCreate(SQLiteDatabase db) {
    String query = "CREATE TABLE " + TABLE_SETTINGS + "(" +
            COLUMN_ID + " TEXT PRIMARY KEY " +
            COLUMN_INT + " INTEGER " +
            COLUMN_STRING + " TEXT);";
    db.execSQL(query);
}

No exception is thrown, it just flat out doesn't set or get any values

ask and I'll provide with eventually missing code.

Aucun commentaire:

Enregistrer un commentaire