如果在Android中找不到记录,则SQLite Cursor返回NULL

时间:2011-10-10 02:03:11

标签: android sqlite

我今天遇到有关从SQLite检索数据的问题。这是我的编码

public Cursor fetchDictionary(String searchword) throws SQLException {
    Cursor mCursor =
        mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
                KEY_WORD, KEY_DEF}, KEY_WORD + "='" + searchword + "'", null,
                null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

以上编码如果没有找到记录,Android提示对话框并强行关闭。如果没有找到记录,有没有办法返回“找不到记录”错误消息?

4 个答案:

答案 0 :(得分:4)

您还可以执行以下操作以检查当前列索引cursor.isNull(columnIndex);

中是否有数据

答案 1 :(得分:2)

try{
 Cursor mCursor =
    mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
            KEY_WORD, KEY_DEF}, KEY_WORD + "='" + searchword + "'", null,
            null, null, null, null);
if (mCursor != null && mCursor.getCount()>0) {
    mCursor.moveToFirst();
     // rest goes here
}else{
     Toast.makeText(context,"No records found ",Toast.LENGTH_LONG).show();
     // show error msg here 
}
}catch(Exception e){
     e.printStackTrace();
}

答案 2 :(得分:1)

你在代码中'抛出SQLException'捕获异常并确定异常是否是由于no-record-found。

答案 3 :(得分:1)

尝试捕获,并将e.printStackTrace()替换为您的消息。