کلیدستان

نسخه‌ی کامل: خطا هنگام Select کردن یک رشته از دیتابیس (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام
من یک بخش جستجو قرار دادم داخل یک Activity همه چیز درست است فقط قسمت Select دیتابیس مشکل دارد. کدهای من به شرح زیر است: (در خط اول عبارت جستجو را از Intent دریافت کردم و به درستی دریافت شده)

کد پی‌اچ‌پی:
String search extras.getString("search");
            
TextView tvS = (TextViewfindViewById(R.id.textViewS);
            
tvS.setText("جستجو برای: " search);

            
SQLiteDatabase db openOrCreateDatabase("ArmDB"Context.MODE_PRIVATEnull);
            
            
Cursor cursor db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE" + %search% , null);
            if (
cursor.moveToFirst()) {
                do {
                    
Log.d("Search ""پیدا شد");

                } while (
cursor.moveToNext());
            }else {
                
Log.d("Search ""پیدا نـشد");
            }

            
db.close(); 
سلام.
شما از اطلاعات خوانده شده، استفاده ای نکرده اید. یعنی بعد از خواندن اطلاعات، کد زیر را نوشته اید :

کد پی‌اچ‌پی:
if (cursor.moveToFirst()) {
                do {
                    
Log.d("Search ""پیدا شد");

                } while (
cursor.moveToNext());
            }else {
                
Log.d("Search ""پیدا نـشد");
            } 

این کد تنها در قسمت LogCat برنامه eclipse ، پیام هایی را نمایش خواهد داد (البته اگر بر روی ماشین مجازی تست کنید یا گوشی واقعی با کابل usb به کامپیوتر متصل باشه)، ولی عملیاتی برای اجرا در خود برنامه (که مثلا یک خروجی قابل دیدن داشته باشد) در نظر نگرفته اید.
توصیه می کنم کلید زیر را بخوانید :

کلید شماره 330

(۱۳۹۳/۱۰/۰۲, ۰۸:۲۹ ق.ظ)shafiei7 نوشته: [ -> ]با سلام
من یک بخش جستجو قرار دادم داخل یک Activity همه چیز درست است فقط قسمت Select دیتابیس مشکل دارد. کدهای من به شرح زیر است: (در خط اول عبارت جستجو را از Intent دریافت کردم و به درستی دریافت شده)

کد پی‌اچ‌پی:
           String search extras.getString("search");
 
           TextView tvS = (TextViewfindViewById(R.id.textViewS);
 
           tvS.setText("جستجو برای: " search);

 
           SQLiteDatabase db openOrCreateDatabase("ArmDB"Context.MODE_PRIVATEnull);
 
           
            Cursor cursor 
db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE" + %search% , null);
 
           if (cursor.moveToFirst()) {
 
               do {
 
                   Log.d("Search ""پیدا شد");

 
               } while (cursor.moveToNext());
 
           }else {
 
               Log.d("Search ""پیدا نـشد");
 
           }

 
           db.close(); 

سلام دوست عزیز 
اگر  که وقت اجرای   دستور  در پنجره لوگ کت ارور رو از سینتکس مربوط به select میدونه  احتمال زیاد بخاطر رعایت نکردن فاصله بین کدهاتون هستش 
بعد از کلمه Like یک اسپیس بزنید
(۱۳۹۳/۱۰/۰۲, ۰۸:۲۹ ق.ظ)shafiei7 نوشته: [ -> ]با سلام
من یک بخش جستجو قرار دادم داخل یک Activity همه چیز درست است فقط قسمت Select دیتابیس مشکل دارد. کدهای من به شرح زیر است: (در خط اول عبارت جستجو را از Intent دریافت کردم و به درستی دریافت شده)

کد پی‌اچ‌پی:
           String search extras.getString("search");
 
           TextView tvS = (TextViewfindViewById(R.id.textViewS);
 
           tvS.setText("جستجو برای: " search);

 
           SQLiteDatabase db openOrCreateDatabase("ArmDB"Context.MODE_PRIVATEnull);
 
           
            Cursor cursor 
db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE" + %search% , null);
 
    if (cursor.moveToFirst()) {
 
    do {
 
        Log.d("Search ""پیدا شد");

 
    } while (cursor.moveToNext());
 
    }else {
 
    Log.d("Search ""پیدا نـشد");
 
    }

 
    db.close(); 

سلام
مشکل از نحوه نوشتن دستور SELECT شما هستش

این قسمت رو 
کد:
Cursor cursor = db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE" + %search% , null);

به این شکل تغییر بدید
کد:
Cursor cursor = db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE %" + search +"%" , null);
 نکته : 
جهت ایجاد امنیت در ارسال داده بهتره به این شکل استفاده کنید
کد:
Cursor cursor = db.rawQuery("SELECT * FROM topics WHERE topic_title LIKE %?%",new String[] {"search "});