ورود

View Full Version : ایا کد من برای دریافت عکس از دیتابیس درسته؟



shayanboy2
شنبه 17 آذر 1397, 22:28 عصر
عزیزان من ازین دستور برای گرفتن نام عکس از دیتابیس استفاده کردم:





public int image_display(String table, String sea, String name) {
Cursor Cursor = mydb.rawQuery(" select * from " + table + " where Seasone = '" + sea + "' and Name = '" + name+ "' " , null);
Cursor.moveToFirst();
int s = Cursor.getInt(6);
return s; }



و ازین کد برای ست کردن اون در استفاده کردم... اما برنامه حتی بالا هم نمیاد که بتونم تستش کنم... کتابم کاملا سالمه اما وقتی این کد ها رو بهش اضافه میکنم از کار میفته




private void load(String sea, String name, int page3) {
db.open();



try {
int img_name = db.image_display("content", "sea" , "name" );
String uri = "drawable/" + img_name;
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable image = getResources().getDrawable(imageResource);
img.setImageDrawable(image);
}catch (Exception e){
Toast.makeText(this, " نام پیدا نشد " , Toast.LENGTH_LONG).show();
}


db.close();
}

vahid_esn
یک شنبه 18 آذر 1397, 08:20 صبح
دو تا نکته، یکی اینکه تو خط int img_name = db.image_display("content", "sea" , "name" ) اگه "sea" و "name" قراره به آرگومان های sea و name تو متد load(String sea, String name, int page3 اشاره کنن پس نیاز به کوتیشن ندارین و به این صورت میشه int img_name = db.image_display("content", sea , name )
نکته دیگه اینکه cursor.moveToFirst رو به این صورت تغییر بدین

if (cursor.moveToFirst())
return cursor.getInt(6);
else
return -1;



تا اگه query مقداری بر نگردوند برنامه کرش نکنه و در نهایت مقدار img_name رو چک کنین که اگه -1 بود ادامه عملیات نده یا تصویر پیش فرض استفاده کنه

در پایان هم می تونین توی اندروید استودیو اگه کار میکنین یه نگاهی به error log بندازین ببینین کدوم خط خطا می ده و خطا رو هم تو سئوالتون بذارین، بقیه می تونن بهتر کمکتون کنن

shayanboy2
یک شنبه 18 آذر 1397, 15:23 عصر
دو تا نکته، یکی اینکه تو خط int img_name = db.image_display("content", "sea" , "name" ) اگه "sea" و "name" قراره به آرگومان های sea و name تو متد load(String sea, String name, int page3 اشاره کنن پس نیاز به کوتیشن ندارین و به این صورت میشه int img_name = db.image_display("content", sea , name )
نکته دیگه اینکه cursor.moveToFirst رو به این صورت تغییر بدین

if (cursor.moveToFirst())
return cursor.getInt(6);
else
return -1;



تا اگه query مقداری بر نگردوند برنامه کرش نکنه و در نهایت مقدار img_name رو چک کنین که اگه -1 بود ادامه عملیات نده یا تصویر پیش فرض استفاده کنه

در پایان هم می تونین توی اندروید استودیو اگه کار میکنین یه نگاهی به error log بندازین ببینین کدوم خط خطا می ده و خطا رو هم تو سئوالتون بذارین، بقیه می تونن بهتر کمکتون کنن
تشکر.... مشکل حل شد