當我在數據庫中搜索某些內容時,我得到的索引超出了「index 0 requested:with size 0」的錯誤。我在我的數據庫中搜索的項目目前不存在,我知道這一點,但我如何處理該項目不存在的查詢。遊標索引超出範圍「索引0請求:大小爲0」
我的電話號碼發送
public String searchNumber(Context context,String number){
ContactDB db = new ContactDB(context);
db.open();
Cursor curs = db.getIdFromPhone(number);
String test = curs.getString(curs.getColumnIndex(db.PHONE_NUMBER)); //fails here
curs.close();
db.close();
return test;
}
查詢
public Cursor getIdFromPhone(String where){
Cursor cur = db.query(DATABASE_TABLE, new String [] {ID,PHONE_NUMBER}
, PHONE_NUMBER + "='" + where + "'",null,null,null,null);
if(cur != null)
cur.moveToFirst();
return cur;
}
測試搜索
from = messages.getDisplayOriginatingAddress();
String dbNumber = searchNumber(arg0,from);
if(dbNumber.equals(from)){
//do stuff
}else{
//do other stuff
}
如果數量沒有找到它應該做的else語句,但是它沒有得到那麼遠
池塘,我不能擺脫getIDFromPhone的,因爲我不能訪問的查詢,除非我是在數據庫類,這是該方法所做的內部。我也得到一個空指針異常這樣做你的方式。它會更容易轉換爲布爾值,因爲我需要知道數字是否存在於數據庫中 – tyczj 2011-03-16 04:13:33
真棒,感謝羅比,這是超級有用的,得到相同的cur == null問題! :) – Soham 2011-11-04 06:55:54