gpt4 book ai didi

android - 如何在 android sqlite 中更新具有列值更改的特定行

转载 作者:行者123 更新时间:2023-11-29 17:55:34 26 4
gpt4 key购买 nike

我正在开发购物车模块。当我按下购物车按钮时,我想将购物车添加到我的数据库场景是我的详细信息页面中有两种产品,一种是电子书,另一种是 pbook。如果我按其中任何一个,我需要根据 pro 、 name 和 auto increment key 创建一行。然后,如果我按下第二个购物车按钮,我需要通过检查 pro 或名称值是否存在来再次更新同一行。以下是我创建数据库的方式。如果值存在于数据库列中,谁能帮我更新行。

   //////From activity

AddCartHelper databaseHelper=new AddCartHelper(WYWProductDetail.this);
databaseHelper.saveCategoryRecord(wyw_pro_id,wyw_book_name);


////Helper Class


public class AddCartHelper {
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "category.db";
private static final String TABLE_NAME = "tbcategory";
public static final String CATEGORY_COLUMN_ID = "_id";
public static final String CATEGORY_COLUMN_PRO = "pro";
public static final String CATEGORY_COLUMN_NAME = "name";
Category openHelper;
private SQLiteDatabase database;
ContentValues contentValues;
String name_id;
public AddCartHelper(Context context) {
openHelper = new Category(context);
database = openHelper.getWritableDatabase();

}

public void saveCategoryRecord(String name, String pro) {

contentValues = new ContentValues();

contentValues.put(CATEGORY_COLUMN_PRO, pro);
contentValues.put(CATEGORY_COLUMN_NAME, name);
if(!name.equals(contentValues.get(CATEGORY_COLUMN_NAME))) {

} else {
database.insert(TABLE_NAME, null, contentValues);
database.close();
}
}

public Cursor getTimeRecordList() {
return database.rawQuery("select * from " + TABLE_NAME, null);
}
private class Category extends SQLiteOpenHelper {
public Category(Context context) {
// TODO Auto-generated constructor stub
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub

db.execSQL("CREATE TABLE " + TABLE_NAME + "( "
+ CATEGORY_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ CATEGORY_COLUMN_PRO + " TEXT, "
+ CATEGORY_COLUMN_NAME + " TEXT )" );
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS"+ TABLE_NAME);
onCreate(db);
}
}
}

最佳答案

这将使用 newName 更新所有 Name = oldName 的行。

public int updateAllName(String oldName, String newName) {
ContentValues values = new ContentValues();
values.put(CATEGORY_COLUMN_NAME, newName);
return Db.update(TABLE_NAME, values, CATEGORY_COLUMN_NAME + " = '" + oldName + "'", null);
}

这将用 newPro 更新所有 Pro = oldPro 的行

public int updateAllPro(String oldPro, String newPro) {
ContentValues values = new ContentValues();
values.put(CATEGORY_COLUMN_PRO, newPro);
return Db.update(TABLE_NAME, values, CATEGORY_COLUMN_PRO + " = '" + oldPro + "'", null);
}

关于android - 如何在 android sqlite 中更新具有列值更改的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681678/

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