PDA

View Full Version : واکشی یک مقداراز دیتا بیس



CodeforLife
شنبه 10 مهر 1395, 22:44 عصر
سلام دوستان گرامی
من در برنامه ای که نوشتم میخوام از لیستی که حاوی id و نام و نام خانوادگی هست .
id رو بگیرم و بعد به متدی پاسش بدم که با اون بگه که اطلاعات id رو بده . همه رو بده
کدها رو نوشتم وقتی میره تو دستور sql خطا دارم
کدهام رو میگذارم
ممنونم میشم من رو از راهنماییهاتون دریغ نکنید .

lstPerson.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//open
person.openDB();
//send id
String listItem = ((TextView) view).getText().toString();
String[] str = listItem.split(" ");
String myId = str[0];
//retrive
Cursor result = person.retrivePerson(myId);
Intent intent=new Intent(G.context,CallActivity.class);
intent.putExtra("fullname",result.getString(1)+" "+result.getString(2));
intent.putExtra("phone",result.getString(3));
intent.putExtra("mobile",result.getString(4));
startActivity(intent);


}
});
}

بعد هم متد

//
//select on raw
//
public Cursor retrivePerson(String id) {
Cursor result = db.rawQuery("SELECT * FROM " + TBL_NAME +
" WHERE Id = " + id, null);
return result;
}

این هم متن خطا
FATAL EXCEPTION: main
Process: com.example.parisa.phonebook, PID: 13073
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
resultمن خالی هستش . یعنی نتیجه cursor

CodeforLife
دوشنبه 12 مهر 1395, 09:07 صبح
سلام دوستان
هنوز موفق نشدم پیدا کنم خطا رو
ببینید هر دفعه که روی گزینه های لیست کلیک میشه
باید این کار انجام بشه هر کوئری ای رو امتحان کردم باز هم همین خطا رو داره
انگار که خطا از جای دیگه باشه
خواهش میکنم حتی اگه حدس هم مس زنید از کجاست بفرمایید

suraty
دوشنبه 12 مهر 1395, 12:37 عصر
سلام،
پیشنهاد من این است که بعد از کد


Cursor result = db.rawQuery("SELECT * FROM " + TBL_NAME + " WHERE Id = " + id, null);




بنویسید:


result.moveToFirst()