ورود

View Full Version : Force close در هنگام گرفتن اطلاعات از دیتابیس



Mohamed007
شنبه 09 خرداد 1394, 14:57 عصر
سلام ، این کد زیر رو میشه ببینید چه اشکالی داره ، . اکتیویتی رو به مانیفست اضافه کردم ، از Sqlite expert personal برای ایجاد دیتابیس استفاده کردم بعد دیتابیس رو در پوشه ی assets کپی کردم.وقتی رو دکمه ی اکتیویتی قبلی کلیک میکنم که بیام تو این اکتیویتی برنامه فورس کلوز میکنه این کد ها رو تو متد onCreate نوشتم قبلا که این کد ها نبود برنامه درست کار میکرد :

SQLiteDatabase mydb;
mydb = openOrCreateDatabase("book.db3", Context.MODE_PRIVATE,null);
Cursor allrows = mydb.rawQuery("SELECT Subject FROM tblStories", null);
Subjects = new String[allrows.getCount()];
int i = 0;
if(allrows.moveToFirst()){
do{
Subjects = allrows.getString(0);
i++;
}
while(allrows.moveToNext());
}
allrows.close();
mydb.close();
ListView lstStories = (ListView)findViewById(R.id.[I]lstStories);
lstStories.setAdapter(new ArrayAdapter<String>(this,MODE_PRIVATE,Subjects));



ممنون از همه

tux-world
یک شنبه 10 خرداد 1394, 06:08 صبح
خطا چی میده؟ لاگ کت رو بزارید اینجا. ( بخدا خسته شدم از بس گفتم دوستان هر کدی که نوشتید خطا میده با خطا بزارید ببینیم. به جان خودم ما علم غیب نداریم)






ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــ
مهندس مهدی پیشگوی

Mohamed007
یک شنبه 10 خرداد 1394, 09:16 صبح
ببخشید به خدا ،من تازه کارم نمیدونستم از کجا باید متن خطا رو گیر بیارم وگرنه مینوشتم ، اینو نوشته :
Android.database.sqlite.sqliteExeption: no such table:tblStories
انگار میگه تیبل نیس ولی من تیبل رو درست کردم، بازم ببخشید بخاطر اینکه خطا رو ننوشتم

tux-world
یک شنبه 10 خرداد 1394, 09:20 صبح
اشکالی نداره ولی فراموش نکنید ممنون میشم.

تیبل tblStories ساخته نشده. چطوری درستش کردید؟ کلاس SqlHelper که استفاده کردید قسمت onCreate چی نوشتید برای ساختن دیتابیس؟

Mohamed007
یک شنبه 10 خرداد 1394, 11:09 صبح
من ی دیتا بیس تو برنامه ی sqlite expert personal ساختم و اطلاعات رو توش ذخیره کردم، بعد از این لینک استفاده کردم :
http://barnamenevis.org/showthread.php?441406-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-SQLite-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%DA%A9%D9%84%D8%A7%D8%B3-DataBaseHelper
بخاطر اینکه تو برنامه فقط میخوام اطلاعات رو از دیتابیس بخونم و نمیخوستم اطلاعات درج یا مثلا آپدیت کنم فقط کد های مربوط به قسمت خواندن از دیتابیس رو دقیقا کپی کردم.

tux-world
یک شنبه 10 خرداد 1394, 11:55 صبح
خوب الان باید یه دیتابیس آماده داشته باشید تو پوشه assets که اون رو کپی کنید جدول بسازی و کلی کارهای دیگه. انجام دادید؟

Mohamed007
یک شنبه 10 خرداد 1394, 14:37 عصر
کل کارهایی که انجام دادم ایناس:
تو نرم افزار sqlite expert personal ی دیتابیس ساختم بعد تو همون نرم افزار یه جدول ساختم به نام tblStories ، تو اون جدول سه تا ستون ایجاد کردم به نام های ID Subject Story که ID رو تنظیم کردم که اتوماتیک شماره بخوره. بعد ی سری اطلاعات ریختم تو جدول و برنامه رو بستم (برنامه خودش کار ذخیره کردن رو خودکار انجام میداد) بعد رفتم به آدرس دیتابیس و از اون ی کپی گرفتم و گذاشتم تو پوشه ی assets. و اون کد ها رو تو onCreate اکتیویتی نوشتم . حالا دیگه نمیدونم کاری جا افتاده یا نه.:اشتباه: