آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل با cursor در بانک

ATRAS  11 سال پیش  11 سال پیش
+3 0

دوستان این خط از خطا دقیقا منظورش چیه.
 android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 52
یه توضیح درمورد برنامه بدم.من یک sqlite دارم که از پوشه asset موقع اجرا کپی میشه تو گوشی.حالا میخوام ازش Qery بگیرم ولی از cursor ایراد میگیره.حالا به نظرتون من کجا اشتباه کردم.

0 0
کدت رو بزار. معمولآ وقتی مقداری رو از cursor میخونی، باید position رو هم در نظر بگیری (11 سال پیش)
0 0
کدو در پایین قرار دادم. (11 سال پیش)
+1 0
مشکل از اینه که به محض اجرای کوئری میخوای ازش گزارش بگیری در صورتی که حداقل باید یه ردیف بری جلو مثلا با این دستور : cursor.moveToNext (11 سال پیش)
+1 0
ارورش هم داره همینو میگه که در مکان -1 که چیزی نیست بهت بدم ;) (11 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
ATRAS  11 سال پیش
0 0

  database = SQLiteDatabase.openOrCreateDatabase(ApplicationDbCopy.DB_QESTION_PATH, null);

Cursor cursor = database.rawQuery("SELECT * FROM quise ", null);

qestiondb = cursor.getString(cursor.getColumnIndex("soal"));
پاسخ به سوال 
احمد اسدی  11 سال پیش
+1 0

 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(); 
}
 
  
0 0
در چه مواقعی cursor مساوی null میشه؟ (11 سال پیش)
+1 0
وقتی کوئری صورت نگیره (11 سال پیش)
0 0
خب الان دقیقا مثل قبل یک بار دارم اینو صدا میکنم ولی با این شرط دیگه خطا نمیده و قشنگ کار میکنه.قزیه چیه؟ (11 سال پیش)
پاسخ به سوال 
ATRAS  11 سال پیش
0 0

دوستان مگه نمیشه جلو شرط متغیر گذاشت؟آخه متغیر من از نوع عددیه مثلا عدد توشم هست 10 وقتی با متغیر مینویسم خطا میده ولی وقتی عدد میزارم کار میکنه.اینم کد.

 Cursor cursor = database.rawQuery("SELECT * FROM quise WHERE id=rnd",null);
0 0
این که شما نوشتید بایدم خطا بده ! توی پست بعدی جواب میدم. (11 سال پیش)
0 0
فقط rnd همون متغیرت هست دیگه ؟ (11 سال پیش)
0 0
بله (11 سال پیش)
0 0
بله rnd متغیریه که یک عدد مثلا از 1 تا 10 به صورت رندوم میگیره. (11 سال پیش)
پاسخ به سوال 
AhmadVB  11 سال پیش
+2 0

زمانی که شما یک پارامتر را می خواهید به Query اضافه کنید باید آن را طوری بنویسید که محتویاتش درون Query اضافه شود نه اسمش. مثلا در مثال بالا باید بنویسید :

 Cursor cursor = database.rawQuery("SELECT * FROM quise WHERE id="+ rnd,null);

دقت کنید که چیزی که درون رشته ارسال می شود برای SQL باید قابل درک باشد. متغیر rnd درون کد جاوا معنی دارد و در SQL معنی ندارد مگر شما اصلطلاحا stored procedure بنویسید که خارج از بحث این مکان است.

+2 0
ممنون حامد جان اصلا هواسم به این قسمت نبود.بازم ممنون. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .