خواندن اطلاعات از پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
فرض کنید که با کدهای زیر، قبلا یک پایگاه داده (SQLite Database) با نام KELIDESTAN.db و یک جدول (table) با نام MY_TABLE برای آن پایگاه داده، ساخته ایم و همچنین سه ردیف اطلاعات را در آن ذخیره کرده ایم :
String TABLE_NAME = "MY_TABLE";
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE_NAME +" (ID INTEGER PRIMARY KEY, NAME TEXT, CITY TEXT);");
mydb.execSQL("INSERT INTO " + TABLE_NAME + " (NAME, CITY) VALUES ('ALIREZA','SHIRAZ')");
mydb.execSQL("INSERT INTO " + TABLE_NAME + " (NAME, CITY) VALUES ('HAMID','TEHRAN')");
mydb.execSQL("INSERT INTO " + TABLE_NAME + " (NAME, CITY) VALUES ('HASAN','GHOM')");
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
اکنون می خواهیم که اطلاعات ذخیره شده در پایگاه داده (SQLite Database) را فراخوانی کنیم و سپس هر مقدار را با استفاده از Toast ، به مدت چند ثانیه، نمایش بدهیم (Toast برای نمایش یک پیام به کاربر و برای چند ثانیه، به کار می رود). برای این منظور، کدهای زیر را می نویسیم :
String TABLE_NAME = "MY_TABLE";
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE_NAME, null);
if(allrows.moveToFirst()){
do{
String ID = allrows.getString(0);
String NAME = allrows.getString(1);
String CITY = allrows.getString(2);
// Show values with Toast
Toast.makeText(getApplicationContext(), ID, Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), NAME, Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), CITY, Toast.LENGTH_LONG).show();
}
while(allrows.moveToNext());
}
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
بنابراین، 9 مقدار مختلف، به صورت پیام های با مدت زمان کوتاه، به کاربر نمایش داده می شود (با استفاده از Toast). این 9 پیام، به ترتیب، برابر مقادیر زیر می باشند :
ALIREZA
SHIRAZ
2
HAMID
TEHRAN
3
HASAN
GHOM
سلام خسته نباشید میخواستم بدونم چطور میتونم که از یک ستون و یک ردیف مشخص اطلاعات رو از دیتابیس بگیرم؟؟؟
سلام و خسته نباشید.
من چند روزه که دارم در مورد دیتابیس sqlite تحقیق می کنم و هنوز جواب ساده ترین مطلب دنیا در مورد دیتابیس رو پیدا نکردم!
سوالم اینه، من می خوام وقتی یک خونه از ستون c و ردیف r رو بخونه! همین...
من دیتابیسم رو بوسیله افزونه فایرفاکس ایجاد کردم و اسمش رو n گذاشتم و اسم جدول رو m گذاشتم. اما اگر بجای
DATABASE_NAME="n" ; TABLE_NAME = "m";
SQLiteDatabase sampleDB = openOrCreateDatabase(DATABASE_NAME, this.MODE_PRIVATE, null);
Cursor allrows = myDB.rawQuery("SELECT c FROM " +
TABLE_NAME +
" where id=r, null);
int j = allrows
بعد از این همه گشتن هنوز نمیدونم بعد ازFROM یا بعد از WHERE باید ستون رو نوشت یا ردیف رو. چون هر دو جور رو دیدم! آیا کدم رو درست نوشتم؟ لطفا کد درست رو بنویسید. من یک رکورد از ردیف مشخص رو میخوام، آیا باید if (c.moveToFirst()) رو بنویسم؟؟
و اینکه برای WHERE و MODE_PRIVATE ایراد میگیره.
و اینکه در متد خواندن، اگر بجای DATABASE_NAME و TABLE_NAME، اسمشون یعنی n و m رو بذارم ایراد میگیره.
و اینکه اگر بجای اسم دیتابیس که موقع ساخت ، n گذاشته بودم و در assets کپی کردم، الان در اینجا اسم دیگه ای بدم ایراد نمیگیره!!!
وسوال آخر اینکه در دیتابیس برای ردیف اسمی نذاشتم، آیا باید اینجا KEY_row=id تعریف کنم؟؟
بینهایت ممنون میشم کمکم کنید.