2012-02-08 48 views
0

點擊書籤按鈕時無法顯示。這段代碼有問題。無法在android中更新查詢之後從表中提取值

首先,我設置了書籤的默認值爲0的1個值。就像這樣 這裏的表名是Test。

DatabaseHelper.java

public Cursor bookmarkedJok(int i) { 
    Cursor c = null; 
     String Query = "UPDATE Test SET isBookmarked =1 WHERE _id = " + i ; 
     c = myDataBase.rawQuery(Query, null); 
     return c; 
} 

我在想,我錯了,上面的查詢或與以下調用函數。 在first.java在那裏我想書籤,這個程式碼的onCreate這個

DatabaseHelper db; 
    public void onClick(DialogInterface dialog, 
            int id) { 
           String i = cur.getString(cur 
             .getColumnIndex("_id")); 
           int it=Integer.parseInt(i); 

           db.bookmarkedJok(it); 
          } 
         }) 

現在,如果我沒有錯誤的話,我顯示此bookmared其中isBookmarked的值爲1 Second.java

protected SQLiteDatabase db; 
protected Cursor cursor; 
protected ListAdapter adapter; 

....

private void bookmark() { 
    String[] fields = new String[] { "substr(title,1,23)", 
      "substr(body,1,35)" }; 
    int[] views = new int[] { R.id.titleJok, R.id.bodyJok, }; 
    cursor = db 
      .rawQuery(
        "SELECT _id, substr(title,1,23),substr(body,1,35) FROM Test WHERE isBookmarked=" +1, 
        null); 
    adapter = new SimpleCursorAdapter(this, R.layout.book_list_item, 
      cursor, fields, views); 
    jokesList.setAdapter(adapter); 

} 

請回復我,我的代碼有什麼錯誤。謝謝。

回答

0

如何使用rawQuery()更新記錄? 嘗試如下:

private SQLiteDatabase sqd; 
public SQLiteDatabase create_database(String dbname) 
    { 
     try{ 
     sqd= SQLiteDatabase.openOrCreateDatabase("/data/data/Your packagename/databases/"+dbname,null); 
     }catch(Exception e){ 
     e.getmessage(); 
       } 
     } 

    public void bookmarkedJok(int i) { 
    //Cursor c = null; 
    create_database(dbname); 
    String Query = "UPDATE Test SET isBookmarked =1 WHERE _id = " + i ; 
    sqd.execSQL(Query); 
    // return c; 
} 

May this help you. 
+0

哦,實在是GR8但是把你的代碼的時候,我得到這個android.database.sqlite.SQLiteException:嘗試寫入只讀數據庫:UPDATE的笑話isBookmarked = 1 WHERE _id = 4,所以如果你想要更多的解決方案。 PLZ回覆。 – 2012-02-09 05:54:11

+0

我編輯了我的答案。 – Dhruvisha 2012-02-09 06:06:44