2011-07-07 35 views
1

我创造我的第一个Android应用程序,现在击中一个奇怪的问题当我更新重复列在数据库中创建了我的Android应用

这里列的情况是: 用户可以输入一个数字任何给定日期的价值。

问题: 因此,当用户试图给同一日期的另一个分数时,我们都知道应用程序应该重写旧值并更新用户刚给出的新值。

所以我有一个更新方法,获取rowId并覆盖旧的值由新。但我桌子上发生的事情很可怕。当我更新2011年6月6日的同一日期的数字值时。它创造了另一个纪录,现在我在同一天有两个条目,一个是旧的,一个是新的。然后当我把它做到2011年6月7日的某个其他日期时(例如为日期赋值并更新它),为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,所以每次我删除使用,它给我狂野的结果。这是我的坏.Bt @ @ Alex的想法帮助我找出更新,因为他说,我先删除然后插入,而这样做,我发现它正在删除一些其他行。

谢谢

+0

请在这里复制你的代码。通过你的解释很难弄清楚你的错误。 – Gopal

+0

@gopal,我添加了代码。 –

回答

0

像gopal说的,很高兴看到一些代码。

无论如何,你不能只是删除旧的条目,并添加一个全新的表格?

+0

现在我认为这是周围的方式,但不应该更新方法照顾这一点。无论如何,如果我的更新不起作用,我会跟随@亚历克斯的建议。谢谢 –

相关问题