gpt4 book ai didi

android - 更新特定行的特定列的值。安卓SQLite

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:45 26 4
gpt4 key购买 nike

我有一个 recyclerview 持卡人,它使用表“ORDERTABLE”中的“NAME”值进行充气。持卡人还有一个 EditText,它显示我的 SQLite 数据库中“QUANTITY”列的值。

我还有一个按钮可以为 EditText 中的每个更改更新数据库。

我有这张表 ORDERTABLE

id      NAME         QUANTITY

1 Order1 1
2 Order2 1
3 Order3 1
4 Order4 1

更具体地说,我如何使用我的 EditText 的新值更新 onButtonPressed 上 Order2 的 QUANTITY。

编辑...

我试过这段代码,但没有任何反应

更新值的按钮

public void addButtonClick(TextView tv_cardrowName_atc, TextView tv_currentPrice_atc, EditText et_quantity_atc, int position) {

int thisQuantity = Integer.parseInt(et_quantity_atc.getText().toString());
thisQuantity++;

String orderName = tv_cardrowName_atc.getText().toString();
String oldQuantity = et_quantity_atc.getText().toString();

String newQuantity = String.valueOf(thisQuantity);
sqliteCBLCAdapter.selectUpdateItem(orderName, oldQuantity, newQuantity);


et_quantity_atc.setText(String.valueOf(thisQuantity));
}

更新方法

public String selectUpdateItem(String orderName, String oldQuantity, String newQuantity) {

SQLiteDatabase sqLiteDatabase = sqLiteCBLC.getWritableDatabase();
String[] columns = {SQLiteCBLC.COL_ORDNAME, SQLiteCBLC.COL_QUANTITY};
Cursor cursor = sqLiteDatabase.query(SQLiteCBLC.TABLE_NAME, columns, SQLiteCBLC.COL_ORDNAME + " = '" + orderName + "'", null, null, null, null);
StringBuffer stringBuffer = new StringBuffer();
while (cursor.moveToNext()) {
int index1 = cursor.getColumnIndex(SQLiteCBLC.COL_ORDNAME);
int index2 = cursor.getColumnIndex(SQLiteCBLC.COL_QUANTITY);
String order = cursor.getString(index1);
String quantity = cursor.getString(index2);

ContentValues contentValues = new ContentValues();
contentValues.put(SQLiteCBLC.COL_QUANTITY, newQuantity);
String[] whereArgs = {quantity};
sqLiteDatabase.update(SQLiteCBLC.TABLE_NAME, contentValues, SQLiteCBLC.COL_QUANTITY + " =? ", whereArgs);

stringBuffer.append(order);

}



return stringBuffer.toString();
}

最佳答案

实现此目的的最简单方法是使用 SQL 更新查询,如下所示:

来自 SQLite 网站:

SQLite UPDATE 查询用于修改表中的现有记录。您可以使用带有 UPDATE 查询的 WHERE 子句来更新选定的行,否则所有行都将被更新。

更新查询的语法如下:

 UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

所以在你的情况下,你的 sql 更新查询看起来像这样:

UPDATE ORDERTABLE SET QUANTITY = (INSERT VALUE OF YOUR EDIT TEXT) WHERE NAME =   'Order2'

然后您可以通过使用您拥有的 SQLiteDatabase 对象的 execSQL() 方法并将上面的 sql 查询作为字符串参数传递来执行您的查询。

关于android - 更新特定行的特定列的值。安卓SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45778456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com