2013-07-02 82 views
0

我有一個預製數據庫的應用程序。我想改變這個數據庫中的條目並保存它,但是我遇到了一些麻煩。我有內部的以下方法DatabaseHelper:數據庫更新但不保存

public void updateStats(int rowId, int correct, int attempts) { 
     //Method for updating the stats after a question is answered 

     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues args = new ContentValues(); 
     args.put("CORRECT", correct); 
     args.put("ATTEMPTS", attempts); 
     db.update("CHARACTERS", args, "_id=" + rowId, null); 

     Cursor c = db.query("CHARACTERS", null, null, null, null, null, null); 
     c.moveToPosition(rowId-1); 
     Log.d("database", "test - " + String.valueOf(c.getInt(0))); 

     db.close(); 

    } 

這似乎是運行更新罰款,這是因爲查詢顯示,該變化已在日誌中完成的。但是當我結束活動時,應用程序正在恢復到原始數據庫。

我在Android中使用數據庫的知識是不完整的,所以我可能錯過了一些簡單的東西。有誰知道發生了什麼問題?

+0

看到http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/。這可以幫助你。 –

+0

你可以發佈你的數據庫路徑嗎? – Nas

+0

@Deen Sure:「/data/data/"+context.getPackageName()+"/"+"databases/」; –

回答

0

,請嘗試使用此

ContentValues dataToInsert = new ContentValues(); 
          dataToInsert.put(ALBUM_IS_COMPLETE, "true"); 
          String where = "album_id=?"; 
          String[] whereArgs = {albumid}; 
          try 
           { 
            openDataBase(); 
            myDataBase.update(DATABASE_ALBUM_TABLE, dataToInsert, where, whereArgs); 
           } 
          catch (Exception e) 
           { 
           } 

希望這將幫助你

+0

我很困惑,是不是基本上與我發佈的代碼相同的技術? –

+0

你試過這個嗎 – farrukh

+0

你是從唯一的一個位置更新你的數據庫嗎? – farrukh

相關問題