2015-07-08 3 views
1

В таблице моей базы данных у меня есть 7 записей. Теперь я хочу обновить записи через предложение WHERE. Во-первых, рассчитывать записи, в соответствии с пЗаписи об обновлении базы данных Android

int pos = 0; 
String SQL = "SELECT COUNT(posizione) FROM operatori WHERE posizione>0;"; 
final Cursor cur = db2.rawQuery(SQL, null); 
while (cur.moveToNext()) { 
     pos = cur.getInt(0); 
} 
     cur.close(); 

//then, with a for loop, update all the records based on a WHERE clause 
for (int i = 1; i <= pos; i++) { 
    ContentValues cv1 = new ContentValues(); 
    cv1.put(OperatoriTable.POSIZIONE, i); 
    db2.update(OperatoriTable.TABLE_NAME, cv1, OperatoriTable.POSIZIONE + ">0", null); 
    } 
    db2.close(); 

, но, например, если pos равен 5, следует ввести номера 1,2,3,4,5. Вместо этого он всегда вставлен 1. Где я ошибаюсь?

+0

Не могли бы вы показать полное предложение «ГДЕ» из OperatoriTable.POSIZIONE? –

ответ

1

Ваш оператор обновления, возможно, обновляет сразу несколько строк. Каждый раз, когда вы вызываете db2.update в цикле for, он, вероятно, перезаписывает все строки, где posizione>0 со значением, которое в настоящее время находится в cv1.

+0

Да, инфакт. это то, о чем я думал. – JJkk

Смежные вопросы