PDA

View Full Version : دریافت اطلاعات از دیتابیس sqlite



Apriliyaa
دوشنبه 08 دی 1393, 20:55 عصر
سلام دوستان
بنده برای matn2 خودم اطلاعات رو از دیتابیس صدا می زنم که در ستون ۶ قرار داره :
در کلاس دیتابیس:

public String matn2 (String table,String season,String matn2,String story){
Cursor Cursor = mydb.rawQuery("select * from "+table+" where season='"+season+"' and name='"+story+"'",null);
Cursor.moveToFirst();
String save = Cursor.getString(6);
return save;

}

و در اکتیویتی مربوط به نوشته ها :



private void loader(String season,String Name,int page3){

db.open();

txt_title.setText(name);
txt_text.setText(db.namayesh_matn("datastorys", season, Name, page3));
/////////////////////////////////////////////////////////////////////////////////
matn2.setText(db.matn2("datastorys", season, Name, Name));
/////////////////////////////////////////////////////////////////////////////////


db.close();
}

}






خوب تا اینجا مشکلی نیست .............

اما وقتی می خوام برای یه فیلد دیگه مثلا matn3 برم اطلاعات رو از ستون شماره ۷ دیتابیس بخونم بدین صورت :


public String matn3 (String table,String season,String matn3,String story){


Cursor Cursor = mydb.rawQuery("select * from "+table+" where season='"+season+"' and name='"+story+"' ",null);
Cursor.moveToFirst();
String save = Cursor.getString(7);
return save;
}



و




private void loader(String season,String Name,int page3){

db.open();

txt_title.setText(name);
txt_text.setText(db.namayesh_matn("datastorys", season, Name, page3));
/////////////////////////////////////////////////////////////////////////////////
matn2.setText(db.matn2("datastorys", season, Name, Name));
/////////////////////////////////////////////////////////////////////////////////
matn3.setText(db.matn3("datastorys", season, Name, Name));

db.close();
}

}






که برنامه فورس کلوز میده !

میشه مشخص کرد مشکل از کجا آب می خوره؟

gilas1368
دوشنبه 08 دی 1393, 21:54 عصر
زماني ک برنامه فورس استاپ ميشه قطعا توي logcat خطاهاش رو مينويسه
پس براي اينک بدونيم مشکل چيه logcat رو بذاريد

saeed_g21
دوشنبه 08 دی 1393, 22:05 عصر
بجای کد زیر از کدی که من میدم استفاده کن


Cursor Cursor = mydb.rawQuery("select * from "+table+" where season='"+season+"' and name='"+story+"' ",null);Cursor cursor = mydb.rawQuery("select namefilde,namefilde2,namefilde3 from "+table+" where season='"+season+"' and name='"+story+"' ",null);

و به جای


String save = Cursor.getString(7);


از کد زیر استفاده من

String save = cursor.getString(cursor.getColumnIndex("نام فیلد مورد نظر"));



Logcat ـی که دوست عزیزمون در بالا گفت رو هم برا آنالیز بده

Apriliyaa
دوشنبه 08 دی 1393, 23:04 عصر
.................................................. ...

saeed_g21
سه شنبه 09 دی 1393, 00:56 صبح
اول LogCat بدین بعد اگه نیاز بود سورس درخواست میشه

در LogCat قسمتی که خطا داره رو مشخص میکنه

نکته :
استفاده کردن از * در Query ها بهینه نیست و فقط نام فیلدی و حتی اگه برای همه فیلدها که نیاز داری رو به جای * بنویس و بگیر اینطوری سرعت برنامه نیز بهینه می شود

Apriliyaa
سه شنبه 09 دی 1393, 23:55 عصر
تشکر از دوستان مشکل حل شد
این کار رو کردم :
در کلاس دیتابیس :
public String matn3 (String table,String season,String matn3,String story){


Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table+" where season='"+season+"' and name='"+story+"' ",null);
Cursor.moveToFirst();
String save = Cursor.getString(7);
return save;


}

و در اکتیویتی :



private void loader(String season,String Name,int page3){

db.open();

txt_title.setText(name);
txt_text.setText(db.namayesh_matn("datastorys", season, Name, page3));
/////////////////////////////////////////////////////////////////////////////////
matn2.setText(db.matn2("datastorys", season, Name, Name));
matn3.setText(db.matn3("datastorys", season, Name, Name));

/////////////////////////////////////////////////////////////////////////////////
db.close();

}


اینجوری خیلی راحت اطلاعات رو از ستون ۷ تیبل ما می گیره و توی تکست ویو نشون میده .....


حالا دوستان ما این کار رو با متن انجام دادیم اما اگه بخواهیم همین کار رو برای نمایش عکس انجام بدیدم باید از چه کد های جایگذین استفاده کنیم ؟

شما فرض کنید عکس ها رو با نام های مثلا 1.jpg 2.jpg 3.jpg ,....... در همون بخش شماره ۷ تیبل دیتابیس ذخیره شده باشه و خود عکس ها هم در پوشه Drawable باشن حالا به جای تکست ویو ما یه ایمیج ویو تو اکتیویتی تعریف کنیم و بخواهیم که عکس ها رو بگیره و نشون بده ! تغییراتی که باید در کد ها وارد کنم چه مدلی میشه؟

راستی وقتی من عکس ها رو داخل پوشه Drawable‌می زیرم فایل R.jaja اروور میده !‌ این دلیلش چیه و باید چه جور رفعش کرد ؟

تشکر از همه ی دوستان به خصوص سعید عزیز

Apriliyaa
چهارشنبه 10 دی 1393, 18:03 عصر
اقا نبودد؟؟؟؟؟؟؟؟؟؟/

tux-world
چهارشنبه 10 دی 1393, 19:25 عصر
راستی وقتی من عکس ها رو داخل پوشه Drawable‌می زیرم فایل R.jaja اروور میده !‌ این دلیلش چیه و باید چه جور رفعش کرد ؟

اینی که گفتید چیه؟ jaja؟

Apriliyaa
چهارشنبه 10 دی 1393, 20:12 عصر
غلط املایی بود : R.java

Apriliyaa
پنج شنبه 11 دی 1393, 18:37 عصر
up........................