Java 更新整数不会';不行-为什么?
这很奇怪。我试图解决这个问题已经有一段时间了。我正在尝试做一些非常简单的事情,更新现有聊天表条目中的消息ID 检查代码Java 更新整数不会';不行-为什么?,java,android,database,sqlite,Java,Android,Database,Sqlite,这很奇怪。我试图解决这个问题已经有一段时间了。我正在尝试做一些非常简单的事情,更新现有聊天表条目中的消息ID 检查代码 public int updateLatestMessage(int messageID, int chatID){ Log.d("DB", "messageid =" + messageID); // messageID = 175 Log.d("DB", "chatid =" + chatID); // chatID = 5 testUpdat
public int updateLatestMessage(int messageID, int chatID){
Log.d("DB", "messageid =" + messageID); // messageID = 175
Log.d("DB", "chatid =" + chatID); // chatID = 5
testUpdate(chatID); // Testing if this Updates and it does update
SQLiteDatabase db = this.getWritableDatabase();
try {
ContentValues cv = new ContentValues();
cv.put("last_message_id", messageID);
int result = db.update("chat", cv, "chat_id = ?", new String[]{String.valueOf(chatID)});
db.close();
return result;
}
catch(Exception e) {
Log.d("DB", "Error: "+e.toString());
return 0;
}
}
函数返回1,表示所有内容都已正确更新。但是消息ID仍然是10,而不是175
在update函数中,我正在运行另一个update函数来测试它是否有效
看起来是这样的:
public void testUpdate(int chatID){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("chat_description", "Will this String Update");
db.update("chat", cv, "chat_id = ?", new String[]{String.valueOf(chatID)});
db.close();
return;
}
现在,这将正确更新字符串“Will this string Update”
就我所知,唯一的区别是我试图更新但未能更新的消息ID是一个整数。而成功的testUpdate更新“chat_description”是一个字符串
我错过了什么
错误必须出现在我提供的代码示例中,因为我在更新函数之前和之后直接记录结果。更新整数无效您没有更新整数。您只更新列
聊天室描述
。这会正确更新字符串“Will this string Update”,那么问题出在哪里?错误必须是。。。什么错误?thanx对于回答,我只是为了测试目的更新聊天描述,在updateLatestMessage()函数中运行testUpdate()函数。updateLatestMessage()函数继续尝试更新“last_message_id”,但不幸失败(这就是问题所在)。错误消息是什么?简单地说,“messageID”不会更新“chat_description”会更新。在这两种情况下,SQL都返回1,这意味着更新成功。这两个值之间的唯一区别是一个是字符串,第二个是整数。(没有错误消息,但有意外输出)如果SQL返回1,则表示更新成功。如果该值没有变化,这意味着您使用与该列相同的值更新了该列。