Если вы хотите вставить строки в таблицу, используйте ContentValues (как ваш код обновления) и метод insert()
:
SQLiteDatabase db = dbHandler.getWritableDatabase();
for (int i = 0; i < 3; i++) {
ContentValues cValues = new ContentValues();
cValues.put(DbHandler.COLUMN_ID, i + 1);
cValues.put(DbHandler.COLUMN_NAME, "Test");
cValues.put(DbHandler.COLUMN_SERIALNUMBER, String.valueOf(i + 1));
cValues.put(DbHandler.COLUMN_COUNTALL, 10);
cValues.put(DbHandler.COLUMN_COUNTHIGH, i + 1);
cValues.put(DbHandler.COLUMN_COUNTLOW, i + 1);
cValues.put(DbHandler.COLUMN_RAWDATA, i + 1);
db.insert(DbHandler.TABLE_USERS, null, cValues);
}
db.close();
Приведенный выше код вставит в таблицу 3 строки:
1 Test 1 10 1 1 1
2 Test 2 10 2 2 2
3 Test 1 10 3 3 3
Теперь, скажем, что вы хотите обновить столбец COLUMN_COUNTHIGH
до 100
и столбец COLUMN_COUNTLOW
до 0
строки с id = 2
, тогда вы используете update()
метод:
SQLiteDatabase db = dbHandler.getWritableDatabase();
ContentValues cValues = new ContentValues();
cValues.put(DbHandler.COLUMN_COUNTHIGH, 100);
cValues.put(DbHandler.COLUMN_COUNTLOW, 0);
db.update(DbHandler.TABLE_USERS, cValues, DbHandler.COLUMN_ID + " = ?", new String[] {String.valueOf(2)});
db.close();
Итак, аргументы метода update()
:
Название стола
ContentValues
предложение WHERE
, которое содержит имена столбцов и заполнители ?
, которые будут определять, какие строки будут обновлены
и значение (я) столбца (столбцов), которое будет установлено в месте ?
Если вы хотите удалить , скажем, строку с id = 1
, используйте метод delete()
:
db.delete(DbHandler.TABLE_USERS, DbHandler.COLUMN_ID + " = ?", new String[] {String.valueOf(1)});
Аргументы аналогичны аргументам метода update()
(без ContentValues).