مشکل با cursor در بانک
دوستان این خط از خطا دقیقا منظورش چیه.
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 52
یه توضیح درمورد برنامه بدم.من یک sqlite دارم که از پوشه asset موقع اجرا کپی میشه تو گوشی.حالا میخوام ازش Qery بگیرم ولی از cursor ایراد میگیره.حالا به نظرتون من کجا اشتباه کردم.
database = SQLiteDatabase.openOrCreateDatabase(ApplicationDbCopy.DB_QESTION_PATH, null);
Cursor cursor = database.rawQuery("SELECT * FROM quise ", null);
qestiondb = cursor.getString(cursor.getColumnIndex("soal"));
database = SQLiteDatabase.openOrCreateDatabase(ApplicationDbCopy.DB_QESTION_PATH, null);
Cursor cursor = database.rawQuery("SELECT * FROM quise ", null);
if( cursor != null && cursor.moveToFirst() ){
qestiondb = cursor.getString(cursor.getColumnIndex("soal"));
cursor.close();
}
دوستان مگه نمیشه جلو شرط متغیر گذاشت؟آخه متغیر من از نوع عددیه مثلا عدد توشم هست 10 وقتی با متغیر مینویسم خطا میده ولی وقتی عدد میزارم کار میکنه.اینم کد.
Cursor cursor = database.rawQuery("SELECT * FROM quise WHERE id=rnd",null);
زمانی که شما یک پارامتر را می خواهید به Query اضافه کنید باید آن را طوری بنویسید که محتویاتش درون Query اضافه شود نه اسمش. مثلا در مثال بالا باید بنویسید :
Cursor cursor = database.rawQuery("SELECT * FROM quise WHERE id="+ rnd,null);
دقت کنید که چیزی که درون رشته ارسال می شود برای SQL باید قابل درک باشد. متغیر rnd درون کد جاوا معنی دارد و در SQL معنی ندارد مگر شما اصلطلاحا stored procedure بنویسید که خارج از بحث این مکان است.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .