BookMarked
列の値を持つ映画のsqliteデータベースがあります。値1
はムービーがブックマークされていることを示し、0
はそれがないことを示します。すべてのデフォルト値は0
です。列の値を選択的に更新できません
ID| BookMarked
--+--------
1 | 0
2 | 0
3 | 1 <--- movie is BookMarked
Iは、それぞれID
値に基づいて個々BookMarked
列値を更新する方法を作成した
public void bookMark(String ID){
SQLiteDatabase db = getReadableDatabase();
ContentValues newValues = new ContentValues();
String value = "1";
String strFilter = "ID="+ID;
newValues.put("BookMarked", value);
db.update("Movies", newValues, strFilter, null);
}
したがって、例えば、ブックマークは、(1)変更する必要があり、上記の表
ID| BookMarked
--+--------
1 | 1 <--- movie is BookMarked
2 | 0
3 | 1 <--- movie is BookMarked
に
問題は、私の構文がmに見えるにもかかわらず、BookMarked
の個々の列の値を選択的に変更できないということです。 e。
私はライン
db.update( "作品"、newValues、strFilter、null)を変更することができます。これ
フィルタを除去し
db.update( "映画"、newValues、NULL、NULL)をnullに引数を設定することにより、
と私はブックマーク(呼び出されたときに、私はこれを取得)
ID| BookMarked
--+--------
1 | 1
2 | 1
3 | 1
フィルタが動作しないのはなぜ?
編集:
私はあなたが
SQLiteDatabase db = getWritableDatabase();
ので、あなたはそれを変更することができますが必要なDBを更新しようとした場合のコード
public void bookMark(String ID) {
// Updating the column
SQLiteDatabase db = getReadableDatabase();
ContentValues newValues = new ContentValues();
String value = "1";
String strFilter = "ID="+ID;
newValues.put("BookMarked", value);
db.update("Movies", newValues, strFilter, null);
// Dumping the cursor
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables("Movies");
String[] sqlSelect = new String[]{"BookMarked"};
String[] selectionArg = new String[]{value};
Cursor c = qb.query(db, sqlSelect, "BookMarked=?", selectionArg, null, null, null);
c.moveToFirst();
Log.v("TAG","Dumping....");
DatabaseUtils.dumpCursor(c);
}
する必要があり、あなたの 'ID'値は存在しません。 –