我創造我的第一個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的想法幫助我找出更新,因爲他說,我先刪除然後插入,而這樣做,我發現它正在刪除一些其他行。
謝謝
請在這裏複製你的代碼。通過你的解釋很難弄清楚你的錯誤。 – Gopal
@gopal,我添加了代碼。 –