Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新整数不会';不行-为什么?_Java_Android_Database_Sqlite - Fatal编程技术网

Java 更新整数不会';不行-为什么?

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

这很奇怪。我试图解决这个问题已经有一段时间了。我正在尝试做一些非常简单的事情,更新现有聊天表条目中的消息ID

检查代码

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,则表示更新成功。如果该值没有变化,这意味着您使用与该列相同的值更新了该列。