在android中触发更新查询后无法从表中提取值

时间:2012-02-08 09:56:54

标签: android sqlite

单击书签按钮时无法显示任何内容。这段代码有问题。

首先我设置了1个书签值,默认值为0.就像这样 这里的表名是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);

}

请回复我,我的代码有什么错误。感谢。

1 个答案:

答案 0 :(得分: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.