لود (load) اطلاعات از دیتابیس(حل شد)
سلام دوستان
من یه برنامه دارم که تعداد زیادی اطلاعات قراره وارد برنامه بشه. ( حالا فرض میکنیم فقط یدونه EditText داریم)
من میخوام اطلاعات رو وارد این editText کنم و زمانی که برنامه رو مجددا باز میکنم با یه دکمه این اطلاعات نمایش داده بشه(لود بشه). برای ذخیره اطلاعات مشکلی ندارم، و تونستم اطلاعات خودم را ذخیره کنم. اما زمانی که برای لود اطلاعات از query مورد نظرم استفاده میکنم برنامه کرش میکنه.
کدهای ذخیره سازی اطلاعات:
// Insert Values Method
public void insert(String word) {
ContentValues contentValues = new ContentValues();
contentValues.put(dbOpenHelper.WORD_WORD, word);
database.insert(dbOpenHelper.TABLE_NAME, dbOpenHelper.WORD_WORD, contentValues);
}
کد های لود اطلاعات در dbHandler
public String display(int id, int field) {
Cursor cursor = database.rawQuery("SELECT * FROM " + dbOpenHelper.TABLE_NAME + " WHERE id=" + id, null);
cursor.moveToFirst();
String word = cursor.getString(field);
return word;
}
کدهای لود اطلاعات در ActivityMain
private void loadFunction() {
handler.open();
edt1.setText(handler.display(id, 1));
handler.close();
}
Update:
کوئری مربوط به display را به کد زیر تغییر دادم
public String display(int row, int fild) {
Cursor cursor = database.query(dbOpenHelper.TABLE_NAME, null, null, null, null, null, null);
cursor.moveToPosition(row);
String word = cursor.getString(fild);
return word;
}
الان گزینه ای که ذخیره شده رو نشون میده ولی فقط اولین موردی رو که ذخیره شده نشون میده. من میخوام آخرین مورد رو نشون بده (یعنی آخرین id ذخیره شده)
در ضمن در ActivityMain یک int id=0; قرار دادم
مشکل حل شد، از کوئری دوم استفاده کردم اما به جای moveToPosition از moveToLast استفاده کردم.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .