因此,对于我的 Android 应用程序,我想更新我最初通过下面的标准方法输入的一行数据,这些数据位于扩展 SQLiteOpenHelper 的类中:
public boolean insert(String name, int quantity, double price){
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseContract.Table.COLUMN_NAME_NAME, name);
contentValues.put(DatabaseContract.Table.COLUMN_NAME_QUANTITY, quantity);
contentValues.put(DatabaseContract.Table.COLUMN_NAME_PRICE, price);
long result = db.insert(DatabaseContract.Table.TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;
}
public void updateData(int id, String name, int quantity, double price){
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseContract.Table.COLUMN_NAME_ID, id);
contentValues.put(DatabaseContract.Table.COLUMN_NAME_NAME, name);
contentValues.put(DatabaseContract.Table.COLUMN_NAME_QUANTITY, quantity);
contentValues.put(DatabaseContract.Table.COLUMN_NAME_PRICE, price);
db.update(DatabaseContract.Table.TABLE_NAME, contentValues, "ID = ?", new String[]{Integer.toString(id)});
}
在我的实际 Activity 中,我有想要更改的名称、数量和价格,但当我不知道任意条目的“id”时,我很困惑如何进行更改。
提前致谢。
最佳答案
我不会返回 boolean 值,而是返回新记录的 ID。假设您的应用程序与商店有关,并且您的名称、数量和价格是 Item 类的属性,我也会向您的商品添加一个 ID 属性。在保存(创建)时,您可以在项目中设置 ID。这将允许您稍后使用相同的 ID 来更新它。如果没有,您将需要一定数量的其他属性作为主键,但这似乎不是您正在寻找的,也不是一个很好的选择。
关于java - 如何在没有entryId的情况下更新SQLiteOpenHelper中的条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965107/