在android中查询

时间:2010-11-20 15:39:08

标签: android sqlite

如果启用text =cursor.getString(cursor.getColumnIndexOrThrow(KEY_BODY));

,应用会崩溃
public String getPhone(long rowId){
        SQLiteDatabase cb = mDbHelper.getReadableDatabase();
        String text = null ;
        Cursor cursor=cb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
                KEY_BODY,KEY_EMAIL},KEY_ROWID + " = ?"+rowId, null, null, null,null);

    //text = cursor.getString(cursor.getColumnIndexOrThrow(KEY_BODY));


                return text;

}

1 个答案:

答案 0 :(得分:1)

好吧,你没有正确传递参数:

  1. 您必须提供字符串参数来过滤查询,从而将String参数传递给您的方法
  2. 我假设您正在传递当前索引和常量。
  3. 你是怎么做的:

    public String getPhone(String rowId){ 
        SQLiteDatabase cb = mDbHelper.getReadableDatabase(); 
        String text = null ; 
        Cursor cursor=cb.query(DATABASE_TABLE, new String[] 
            {KEY_ROWID, KEY_TITLE, KEY_BODY,KEY_EMAIL},KEY_ROWID + " = ?",new String[]{rowId}, null, null,null);
        if(cursor.moveToFirst())
            text =cursor.getString(cursor.getColumnIndexOrThrow(KEY_BODY));
        else
            return "";