2010-12-30 3 views
4

여기에 문제가 있습니다. 데이터베이스에서 여러 행을 업데이트하려고하면 테이블을 일괄 업데이트하려고합니다. 업데이트는 간단합니다. 난 단지 열 값을 실제로 응용 프로그램에서 플래그로 사용되는 1로 설정해야합니다. 그래서 값을 1로 설정하고 where 절에서 설정하려는 모든 ID의 문자열 배열을 제공합니다. 하지만 문제는 나에게 "android.database.sqlite.SQLiteException : bind 또는 column 인덱스가 범위를 벗어났습니다."라는 것입니다. 그러나 단일 값이 문자열 또는 문자열 배열로 제공되면 업데이트가 제대로 작동합니다. 여기안드로이드에서 Sqlite 데이터베이스 업데이트 명령의 여러 행을 업데이트 할 수 없습니다

이 항목 유형 인 쿼리

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

입니다 문자열 []

친절하게 내가 놓친 거지 무엇을 말해?

관련

파하드 알리 샤이 크 나는 당신이 준 하나 개의 라인에 따라 믿고 작동하지 않을

답변

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); 
관련 문제