我有一个包含7列的隐藏数据库,其中一列是价格,其值为null。我想在id = 1的字段列中输入一些值,然后对于id = 2我输入另一个值等,当我填写价格列时,我想更新整体。那可能吗? 我的代码只更新了一个值
public boolean updateData(String id,String name, String number_phone, String about, Integer price, String color){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1, id);
contentValues.put(COL_2, name);
contentValues.put(COL_3, number_phone);
contentValues.put(COL_4, about);
contentValues.put(COL_5, price);
contentValues.put(COL_6, color);
db.update(TABLE_NAME, contentValues, " ID = ?" , new String[]{id});
return true;
}
答案 0 :(得分:0)
我不太明白你的问题,但从我的理解,这可能会帮助你。
如果只想更新一个字段值,则需要使用for循环。 在onCreate方法中,使用要在表的每一行中更新的价格数组调用此方法。 价格数量不应大于否。行中存在行。
for(int i=0;i<(no. of rows in table);i++){
updateData(rowId,priceArray[i]);
}
现在更新方法就像。
public boolean updateData(String id, Integer price){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_5, price);
db.update(TABLE_NAME, contentValues, " ID = ?" , new String[]{id});
return true;
}
如果要更新某些行,例如{1,4,5},则必须通过调用带有id和价格的updateData方法逐个更新它。
但是,如果您希望在某些行中更新相同的价格字段值,例如{1,4,5}以上
public boolean updateData(Integer price){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_5, price);
db.update(TABLE_NAME, contentValues, " ID = ?" , new String[]{1,4,5});
return true;
}