我今天遇到有关从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提示对话框并强行关闭。如果没有找到记录,有没有办法返回“找不到记录”错误消息?
答案 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()
替换为您的消息。