انجمن سایت کلیدستان



خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندروییدزمان کنونی: ۱۳۹۵/۰۹/۱۳، ۱۲:۲۸ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: dost-67
آخرین ارسال: dost-67
پاسخ 6
بازدید 1186

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#1
با سلام دیتابیسی ساختم که دادهایی از کاربر میگیره و ذخیره میکنه و id دادها را در یک لیست ویو نمایش میده الان میخوام با کلیک بر روی هر  id که در لیست ویو نمایش داده شده همه داده های اون ستون رو برای کاربر نمایش بده برای گرفتن کل داده های یک ستون از چه کدی باید استفاده کرد؟؟
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#2
سوالمو واضح تر میگم شاید دوستان متوجه نشدن
برنامه ای ساختم که اطلاعات نام ونام خانوادگی و شماره  رو در دیتابیسذخیره میکنه

و در لیست ویو نام خانوادگی نمایش داده شده

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

من این کد نوشتم

کد پی‌اچ‌پی:
    c db.rawQuery("SELECT * FROM " dbh.TABLENAME null);
            
            while (
c.moveToNext()) {
                
                
            
nam c.getString(0);
                
namehesab namehe;

                
                
                
famil c.getString(1);
                
familmokhatb famil;

                
number c.getString(2);
                
numbermokhatab number ;


اما مشکل اینجاست که فقط اطلاعات اخرین ایتم رو نشان میده
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#3
خب شما یک اشتباه کردید.
شما نوشتید SELECT * FROM ...
خب این دستور میداد همه ستونها رو از دیتابیس   رو  به اشاره گر شما (cursor)  وصل کنه.
وقتی حلقه میزنید، به این معنی هست که از سطر اول اشاره گر شروع به حرکت کنه تا برسه به انتهای دیتابیس(چون هیچ شرطی نذاشتید).
به این صورت که حلقه شما در اولین تکرار میاد سطر اول مقادیر میریزه داخل 3 متغییر (نام و فامیلی و شماره).
حلقه برای بار دوم میاد تکرار میشه ،این دفعه میاد سطر دوم دیتابیس میریزه داخل 3 متغییر  و الی آخر
و حلقه وقتی آخرین بار اجرا بشه ،میاد سطر آخر دیتابیس میریزه داخل 3 متغییر .
پس شما روی هر کدوم از ایتم های لیست ویو کلیک کنید ، مقادیر سطر آخر نشون میده.(این از دلیل این اتفاق)
راه حل چیه؟
شما باید برای کوئری تون یک شرط بزارید. شما وقتی هر آیتم کلیک میشه ،میتونید از متغییر position اون آیتم استفاده کنید.و داخل کوئری به کار ببرید مثل دستور
زیر
کد پی‌اچ‌پی:
db.rawQuery("SELECT * FROM " dbh.TABLENAME+"WHERE id="+ (postion+1)+" , null); 
بعد بقیه دستورای بالا رو همون جوری در ادامه اش بنویسی.
دستور بالا میگه : بیا از دیتابیس سطری انتخاب کن که شماره اش مثلا 3 است.

نکته : دلیل اینکه داخل کوئری از Postion+1      استفاده کردم ،بخاطر اینه که مقدار پوزیشن از صفر شروع میشه ولی id  مقدارش از یک .
بخاطر همین با مقدار یک جمع کردم تا باهم ست بشه.

 
پاسخ
 سپاس شده توسط admin ، dost-67

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#4
از روشی که گفتید استفاده کردم ولی این خطا رو میده

   
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#5
داخل کوئری یک فاصله پشت WHERE بنداز .
" WHERE  "
پاسخ
 سپاس شده توسط dost-67 ، admin

خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید

#6
مشکل حل شد مرسی

ادمین عزیز لطفا موضوع سوال رو به ((خواندن داده های ذخیره شده دیتابیس در برنامه نویسی اندرویید)) تغییر بده چون تو سایت های زیادی گشتم ولی چیزی در این مورد نبود کمکی میشه واسه بقیه دوستان
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ
 سپاس شده توسط admin


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)