2010-12-30 25 views
4

ここに問題があります。私はテーブルを一括更新しようとしています。つまり、データベース内の複数の行を更新しようとしています。更新は簡単です。私はちょうど実際にアプリケーションでフラグとして使用される1に列の値を設定する必要があります。だから私は値を1に設定したいとwhere節で私はそれが設定したいすべてのIDの文字列配列を与える。 しかし、問題は、それが私に "android.database.sqlite.SQLiteException:バインドまたは列インデックスが範囲外です:"です。しかし、単一の値が文字列または文字列配列のいずれかとして提供されている場合、更新は正常に機能します。ここアンドロイドのSqliteデータベース更新コマンドで複数の行を更新できません

クエリーアイテムは親切に私が何をしないのです教えてください?[] String型の

ある

db.update(tableName, cv, Z_ID + "=?", items); 

ですか

に関して、私はあなたが与えた1行に基づいて信じて仕事に行くのではありません

ファハド・アリシェイク

答えて

4

我々はメソッド呼び出しの署名を見れば:

update(String table, ContentValues values, String whereClause, String[] whereArgs) 

ので:あなたはこのような何かを見て

ContentValues cv=new ContentValues(); cv.put(colName, new Integer(1)); 

String[] items = new String []{String.valueOf(Z_ID)} 

db.update(tableName, cv, Z_ID + "=?", items); 

コーディングしていますか?

アイテムの配列は、where句と一致する必要があります。異なる例は次のようになります。

ContentValues cv=new ContentValues(); cv.put(salesColName, new Integer(4534)); 

String whereClause = "band=? and album=?"; String whereArgs = new String [] { "U2", "Joshua Tree" }; 

db.update(tableName, cv, whereClause , whereArgs); 
関連する問題