gpt4 book ai didi

java - Android Java SQLite 没有更新?

转载 作者:行者123 更新时间:2023-12-02 09:19:24 25 4
gpt4 key购买 nike

我快要疯了。我一直在尝试更新 SQLite 数据库内一行中的一列,但无论我尝试什么,它都不会发生。该值从未更新,并且我的日志中没有异常。

下面的代码可能最好地总结了我的问题。updateLatestMessage() 函数是数据库 Controller 类的一部分。

  public void updateLatestMessage(int messageID, int chatID){
Log.d("DB", "message ID =" + messageID); //example output = 125
Log.d("DB", "chat ID =" + chatID); //example output = 2

SQLiteDatabase db = this.getWritableDatabase();

try {
ContentValues cv = new ContentValues();
cv.put("latest_message_id", messageID);
db.update("chat", cv, "chat_id = ?" + chatID, null);
db.close();
//db.update(tableChat.TABLE_NAME, cv, tableChat.getChatId() + " = ?", new String[]{String.valueOf(chatID)}); // tried this before didn't work either


}
catch(Exception e) {
Log.d("DB", "Error: "+e.toString());
}

}

当前最新消息的 ID 为 5

        myDB.chat.updateLatestMessage((int) messageID, globalChatID);//calling the above DB update code

运行此代码后,最新消息的 ID 仍然是 5,而不是 125

我希望在现有聊天行的latest_message_id 列中更新messageID。

最佳答案

如果表的名称是“chat”,则WHERE子句中的列名称是“chat_id”并且WHERE子句的参数是chatID,那么推荐的更新方式是这样的:

int result = db.update("chat", cv, "chat_id = ?", new String[]{String.ValueOf(chatID)});

检查语句后result的值。
如果其值大于0则更新成功。

关于java - Android Java SQLite 没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792656/

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