मुझे कर्सर इंडेक्स सीमाओं से बाहर हो रहा है "इंडेक्स 0 अनुरोध किया गया है: आकार 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
}
अगर नंबर नहीं मिला है इसे किसी और बयान करना चाहिए, लेकिन यह नहीं मिलता है अब तक
तालाब मैं getIDFromPhone से छुटकारा पाने के नहीं कर सकते क्योंकि मैं पहुँच क्वेरी नहीं कर सकते जब तक कि मैं डेटाबेस वर्ग है जो कि विधि करता है अंदर हूँ उपयोग करना होगा। मुझे भी एक नल पॉइंटर अपवाद मिलता है जो इसे आपके तरीके से कर रहा है। क्या यह बूलियन के लिए आसान स्विचिंग होगा क्योंकि मुझे यह जानने की ज़रूरत है कि डेटाबेस में संख्या मौजूद है या नहीं – tyczj
बहुत बढ़िया, धन्यवाद रॉबी, जो कि बहुत उपयोगी था, वही cur == शून्य मुद्दा प्राप्त कर रहा था! :) – Soham