2011-07-07 33 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

現在我認爲這是周圍的方式,但不應該更新方法照顧這一點。無論如何,如果我的更新不起作用,我會跟隨@亞歷克斯的建議。謝謝 –

相關問題