Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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/3/android/215.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 Android-SQLite-update()_Java_Android_Sqlite_Sql Update - Fatal编程技术网

Java Android-SQLite-update()

Java Android-SQLite-update(),java,android,sqlite,sql-update,Java,Android,Sqlite,Sql Update,所以我的问题很有意思。我一直在寻找答案,不幸的是没有任何帮助。我一直在开发一个应用程序,但遇到了一个小问题。今天,我的一位同事提到,应用程序应该允许用户从数据库中选择一条特定的记录,然后对其进行编辑。因此,我添加了以下代码: _dbw.update(TABLE_CHRG_DATA, values, COLUMN_KEY + "=?", new String[] {recordNum}); 问题是它没有更新记录,而是添加了一个新记录,我原以为update()不应该这样做 无论如何,我想知道这里到

所以我的问题很有意思。我一直在寻找答案,不幸的是没有任何帮助。我一直在开发一个应用程序,但遇到了一个小问题。今天,我的一位同事提到,应用程序应该允许用户从数据库中选择一条特定的记录,然后对其进行编辑。因此,我添加了以下代码:

_dbw.update(TABLE_CHRG_DATA, values, COLUMN_KEY + "=?", new String[] {recordNum});
问题是它没有更新记录,而是添加了一个新记录,我原以为update()不应该这样做

无论如何,我想知道这里到底发生了什么,非常感谢您的帮助。我已经尝试了我能想到的一切,但是代码继续添加新记录,而不是编辑现有记录。我想我只需要第二个意见,呵呵

短暂性脑缺血发作


布拉德。

嗯。。。这就是为什么人们应该偶尔睡觉,哈哈。在再次阅读代码之后,我发现了这个问题。对于要编辑现有记录的用户,他们在记录中导航,然后编辑所需的记录。为此,我使用光标的位置,它从0开始。但是,数据库中的ID从1开始。。所以它在做更新,只是在错误的记录上。我现在只需将recordNum增加1,就可以开始了。刚刚通过另一个快速测试,她正在按预期工作

再次感谢大家


Brad.

@MylesBaker-感谢您的快速回复_dbw是一个SQLite数据库。下面是代码:final SQLiteDatabase _dbw=this.getWritableDatabase()。我试过各种方法设置op中的代码行,我想这不会有什么区别。我有两行代码,要么创建新记录,要么更新现有记录。在调试过程中,我可以看到它绕过了insert并执行了更新,但仍然创建了一个全新的记录。我想知道这是否与我传递的密钥有关,但没有看到任何警告或错误。
\u dbw.update
的返回值是多少?它应该返回受影响记录的整数。我担心您可能有多个
\u dbw
实例。否则,您应该确认
where
子句,
COLUMN_KEY+“=?”
更新()
无法添加记录(除非您有这样做的触发器)。为什么您认为数据库中有一条新记录?@CL.-当我计算表中的记录数时,它增加了一条。此外,我写入的记录非常具体,因此我可以在之后检查数据并验证记录是否已被更改。当我在更新后检查数据时,我看到了我正在更改的记录,它处于原始状态,也是同一个记录,带有我所做的更改。然后,当我检查光标的位置时,它会递增。我知道这不应该发生,这就是为什么我感到困惑。不应该有任何触发器,因为数据库非常简单,只有几个表。你说代码要么插入,要么更新。您显示的所有证据都表明执行的是insert。