用不同的值更新列sqlite数据库android studio

时间:2017-11-15 12:25:26

标签: android android-studio sqlite android-sqlite

我有一个包含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;
}

1 个答案:

答案 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;
    }