Android 不更新数据库中的值,而是插入新条目

Android 不更新数据库中的值,而是插入新条目,android,android-sqlite,Android,Android Sqlite,我正在使用下面的代码更新数据库,并将where子句作为日期 ContentValues values = new ContentValues(); values.put(DBTransactions.USER_ID_KEY, userId); values.put(DBTransactions.DATE_KEY, date); values.put(DBTransactions.DAY_KEY, day); values.put(DBTransactions.G

我正在使用下面的代码更新数据库,并将where子句作为日期

 ContentValues values = new ContentValues();
    values.put(DBTransactions.USER_ID_KEY, userId);
    values.put(DBTransactions.DATE_KEY, date);
    values.put(DBTransactions.DAY_KEY, day);
    values.put(DBTransactions.GOAL_KEY, dailyGoal);
    values.put(DBTransactions.VOLUME_KEY, dailyVolume);
    values.put(DBTransactions.IS_GOAL_MET_KEY, goalMet);
    db.getWritableDatabase().update(DBTransactions.TRANSACTION_TABLE_NAME, values, DBTransactions.DATE_KEY + " = ?", new String[]{date});
    closeDB();
我把where子句放在哪里错了吗?它不更新数据库,而是在数据库中创建新条目

它没有更新数据库。
提前感谢

我正在使用此代码更新我的数据库,它工作正常,对我来说不是问题

  public void updateItemToCartTable(String itemId, String subitemid, String cost, int quantity) {

    sdb = this.getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(ITEM_COST, cost);
    values.put(ITEM_QUANTITY, quantity);

    Log.d("DB", "Count : " + quantity);

    this.sdb.update(TABLE_NAME, values, ITEM_ID + " ='" + itemId + "'         AND " + SUB_ITEM_ID + " ='" + subitemid + "'", null);
    sdb.close();
}

使用此代码更新数据库

使用以下代码更新表:

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(DBTransactions.USER_ID_KEY, userId);
values.put(DBTransactions.DATE_KEY, date);
values.put(DBTransactions.DAY_KEY, day);
values.put(DBTransactions.GOAL_KEY, dailyGoal);
values.put(DBTransactions.VOLUME_KEY, dailyVolume);
values.put(DBTransactions.IS_GOAL_MET_KEY, goalMet);

db.update(DBTransactions.TRANSACTION_TABLE_NAME, values, DBTransactions.DATE_KEY + " = ? ", new String[]{String.valueOf(date)});

closeDB();
  • DBTransactions.TRANSACTION\u表\u NAME表中DBTransactions.DATE\u键列的数据类型是什么
  • 在本地数据库中插入数据,并检查在DBTransactions.TRANSACTION\u TABLE\u NAME TABLE中插入日期的格式
  • 根据DBTransactions.DATE_键条件更新记录时,请检查DBTransactions.DATE_键是否与DBTransactions.TRANSACTION_表_NAME DBTransactions.DATE_键列中存储的值匹配

代码中的其他内容似乎都很好。

您应该显示一些日志或异常…我没有收到任何异常,它插入新条目而不是更新相同的值。您可以发布创建表和列数据类型的日志吗?它发生了,因为找不到传递where子句的日期…这是update查询的默认行为。请验证它,您存储和传入where子句的日期类型应该是相同的模式。