我正在创建我的第一个Android应用程序,现在遇到了一个奇怪的问题
情况如下: 用户可以输入任何给定日期的数值。
问题: 因此,当用户尝试为同一日期提供另一个分数时,我们都知道应用程序应该重写旧值并更新用户刚刚给出的新值。
所以我有一个更新方法获取rowId并用new覆盖旧值。但是在我的桌子上发生的事情是可怕的。当我更新同一日期的数值时,请说6/6/2011。它创建了另一条记录,现在我在同一日期有两个条目,一个是旧的,一个是新的。然后当我执行其他日期时说6/7/2011(比如给出一个日期的值,然后更新它),为6/6/2011创建的重复列已经消失,并且为6创建了一个重复的列7/2011。
updateValue(...){
ContentValues args = new ContentValues();
args.put(KEY_DATESTAMP_SUBTABLE, day);
args.put(KEY_HABIT, habit);
args.put(KEY_USER_SCORE_SUBTABLE, userScore);
args.put(KEY_CALCULATED_SCORE_SUBTABLE,
calculateCompoundScore(scoringMethod, userScore, importance));
String whereClause = KEY_ROWID + "=" + rowId;
return mDb.update(SCORE_TABLE, args, whereClause, null) > 0;
}
任何人都可以解释我这种行为!!!!
我编辑并添加了代码:
编辑: 我发现了问题,这是一个愚蠢的错误,rowID是不同表的行id,所以每次我使用它删除它都会给我带来狂野的结果。这是我的坏..BUt @Alex的想法帮助我弄清楚更新,因为他说,我先删除然后插入,而这样做我发现它是删除其他一行。
由于
答案 0 :(得分:0)
就像gopal说的那样,很高兴看到一些代码。
无论如何,你不能只删除旧条目并在表格中添加一个全新条目吗?