java - 如何在没有entryId的情况下更新SQLiteOpenHelper中的条目?

标签 java android sql sqliteopenhelper

因此,对于我的 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/

相关文章:

Android 读取/写入多条记录 NDEF NFC

sql - 触发器-postgres

sql - 如何将 SQL Server Management studio - "Execute Stored Procedure"用于用户定义的表类型?

Java Eclipse : How to view Compile warnings

java - Json KEY不断变化时Spring对Java对象的响应

android - 无法使用 JMeter 录制 Android 应用程序

java - 当用户触摸屏幕(外部)时如何隐藏对话框?

mysql - 分组、计数和连续圈数

java - 是否有可用的 Bloomier 过滤器的实现?

java - com.ximpleware 解析 XML - XPath - ==> 末尾或附近的语法错误