2016-10-27 13 views
0

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); 

     } 
+0

する必要があり、あなたの 'ID'値は存在しません。 –

答えて

0

をテストするためにカーソルをダンプしています。

その後updateが明らか

db.update("Movies", newValues, "ID=?", new String[] { ID }); 
+0

私はまだ同じ問題を抱えています。この行 'db.update(" Movies "、newValues、null、null);'すべての値を更新し、この行 'db.update(" Movies "、newValues、strFilter、null);はNO値を更新します –

関連する問題