-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
narvanco
سلام دوستان
لطفا راهنماییم کنید چطوری میشه مکان اسکرول رو در دیتابیس ذخیره کرد تا وقتی از لیست به یه مطلب میریم و برمیگردیم دوباره لیست از اول شروع نشه و از همونجایی که بودیم ادامه پیدا کنه.
ممنونم
سلام
میخواین موقعیت لیست ویو رو ذخیره کنید؟
این کار رو حتما نیازی نیست با دیتابیس انجام بدید، با shared preferences هم میشه این کار رو انجام داد
پیدا کردن موقعیت لیست رو میتونید اینطوری انجام بدید
وقتی کاربر داره خارج میشه دو مقدار listIndex و ListTop رو ذخیره کنید از نوع int توی Shared Preferences
به این صورت
listIndex = list.getFirstVisiblePosition();
View view = list.getChildAt(0);
listTop = view.getTop();
وقتی کاربر دوباره وارد شد اطلاعات رو از shared preferences بخونید و لیست رو به موقعیت ذخیره شده ببرید، با این کد
list.setSelectionFromTop(listIndex, listTop);
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام استاد.
میشه توضیح بدید برای لیست ویو یی که بصورت arrayadapter با دیتاهایی که از database به روشی که اموزش دادید استخراج میشه چطور میشه جستجو قرار داد؟
من در برنامه ام دیتا رو از دیتابیس میگیرم و در یک فایل xml که نحوه نمایش سطرحا رو در اون قرار دادم میریزم و نمایش میدم.
حالا میخوام امکان جستجو رو هم در اون فایل قرار بدم.
اما وقتی edittext رو در XML مینویسم توی همه سطرها تکرار میشه.
ممنون میشم راهنماییم کنید.
با تشکر.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
davoodi
سلام استاد.
میشه توضیح بدید برای لیست ویو یی که بصورت arrayadapter با دیتاهایی که از database به روشی که اموزش دادید استخراج میشه چطور میشه جستجو قرار داد؟
من در برنامه ام دیتا رو از دیتابیس میگیرم و در یک فایل xml که نحوه نمایش سطرحا رو در اون قرار دادم میریزم و نمایش میدم.
حالا میخوام امکان جستجو رو هم در اون فایل قرار بدم.
اما وقتی edittext رو در XML مینویسم توی همه سطرها تکرار میشه.
ممنون میشم راهنماییم کنید.
با تشکر.
سلام دوست عزیز
من اصلا متوجه نشدم شما دقیقا دارید چکار میکنید
برای جستجو نیاز به کار اضافی نیست
دقیقا مثل همون اول که از دیتابیس میخونید و آداپتر لیست رو مقدار میدید، اینجا برای جستجو فقط توی کوئری توی یک شرط میذارید
مثلا اگر میخواین از ادیت تکس متن رو بگیره و جستجو کنه روی یک ستون به اسم myColumn در جدول myTable
Cursor c = mydb.execSQL("select * from myTable where myColumn = '" + editText.getText() + "'");
کوئری بالا توی جستجو سطرهایی رو برمیگردونه که ستون myColumn اونا دقیقا برابر ادیت تکست باشه
اما اگر میخواین درصورتی که ستون شامل این کلمه هم بود نتیجه بده، مثلا مقدار ستون "شرکت فلان پرداز" هست و شما کلمه "فلان" رو سرچ میکنی
برای اینکه نتیجه بگیری باید از کوئری زیر استفاده کنید
Cursor c = mydb.execSQL("select * from myTable where myColumn = '%" + editText.getText() + "%'");
علامت درصد (%) بیانگر اینه که میتونه هرچیزی باشه، شما میتونید هرجایی که خواستید درصد بذارید، به این معنی که مهم نیست اونجا چی باشه
حالا بعدش که اطلاعات رو ریختید توی cursor دقیقا مثل قبل اونا رو بریزید توی آداپتر لیست ویو و لیست ویو رو مقدار بدید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام poorman جان
یه لایبری تو github دیدم که ماشالله 1255 تا ستاره خورده بود و ماله دیتابیس sqlite هست
اسمش هست ActiveAndroid و خودش میگه که با این لایبری بدون اینکه یه خط از دستورات sql را بنویسی میتونی رکوردهای دیتابیس sqlite را ذخیره و فراخوانی کنی ...
شما که با دیتابیس زیاد کار کردی حتما یه نگاه بهش بنداز که شاید این از sqlite Asset helper بهتر باشه ... بعدش یه خبر بهمون بده
https://github.com/pardom/ActiveAndroid
فدا ....
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
سلام poorman جان
یه لایبری تو github دیدم که ماشالله 1255 تا ستاره خورده بود و ماله دیتابیس sqlite هست
اسمش هست ActiveAndroid و خودش میگه که با این لایبری بدون اینکه یه خط از دستورات sql را بنویسی میتونی رکوردهای دیتابیس sqlite را ذخیره و فراخوانی کنی ...
شما که با دیتابیس زیاد کار کردی حتما یه نگاه بهش بنداز که شاید این از sqlite Asset helper بهتر باشه ... بعدش یه خبر بهمون بده
https://github.com/pardom/ActiveAndroid
فدا ....
چشم وقت کردم نگاه میندازم بهش ببینم چه چیز خاصی ارائه میده :لبخندساده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
سلام poorman جان
یه لایبری تو github دیدم که ماشالله 1255 تا ستاره خورده بود و ماله دیتابیس sqlite هست
اسمش هست ActiveAndroid و خودش میگه که با این لایبری بدون اینکه یه خط از دستورات sql را بنویسی میتونی رکوردهای دیتابیس sqlite را ذخیره و فراخوانی کنی ...
شما که با دیتابیس زیاد کار کردی حتما یه نگاه بهش بنداز که شاید این از sqlite Asset helper بهتر باشه ... بعدش یه خبر بهمون بده
https://github.com/pardom/ActiveAndroid
فدا ....
من داکیومنت این لایبری رو خوندم
به نظر من این لایبری واسه کسایی که با دیتابیس SQL کار نکردن ممکنه خیلی خوب باشه
اما اگر شما قبلا با دیتابیس کار کرده باشین، این لایبری یکم مسخره به نظر میرسه
همچنین این لایبری هنگام کار با دیتابیس آماده و از پیش ساخته شده، دیتابیس رو به صورت ساده دریافت میکنه
اما SQLite asset Helper دیتابیس رو زیپ شده میخونه که باعث میشه حجم برنامه پایین بمونه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
عکس هم میشه insert کرد ؟ :لبخند:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
badname
عکس هم میشه insert کرد ؟ :لبخند:
نمیدونم، چیزی مخصوص عکس ننوشته بود
ولی فک کنم یه چیزایی بود که همه نوع داده ای رو میتونی insert کنی !!!
-
نقل قول: آموزش : کار با دیتابیس SQLite، ساختن و استفاده از دیتابیس آماده
سلام
همین طور که در جریان هستید من یک تازه کارم.
ممنون میشم که بگین توی مثالی که زدین چطوری میشه یک سطر خاص مـثلا id=3 رو توی یک TextVeiw نمایش بده
ممنون
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
آقای poorman میدونید چطور میتونیم با استفاده از این کتابخوبه با استفاده از ListView توی دیتابیس جستجو کنیم؟
-
نقل قول: آموزش : کار با دیتابیس SQLite، ساختن و استفاده از دیتابیس آماده
نقل قول:
نوشته شده توسط
SaharAzizi
سلام
همین طور که در جریان هستید من یک تازه کارم.
ممنون میشم که بگین توی مثالی که زدین چطوری میشه یک سطر خاص مـثلا id=3 رو توی یک TextVeiw نمایش بده
ممنون
سلام
کاری نداره شما باید برای کوئری فقط یک شرط بذارید تا اطلاعات اون سطر رو برگردونه
بعدش با اطلاعات هر کاری خواستی میکنی، اینجا چون میدونم فقط یک سطر جواب داریم، نیاز به حلقه تکرار و آرایه نیست دیگه
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE + " where _id = 3", null);
if(allrows.moveToFirst()){
textView.setText(allrows.getString(1));
}
allrows.close();
mydb.close();
توی این مثال تمام ستون های سطری که فیلد _id اون برابر 3 هست انتخاب میشن، و بعد مثلا محتوای ستون دوم ( ایندکس 1 ) داخل تکست ویو نمایش داده میشه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
ali-star
سلام
آقای
poorman میدونید چطور میتونیم با استفاده از این کتابخوبه با استفاده از ListView توی دیتابیس جستجو کنیم؟
سلام
این کتابخونه کار خاصی غیر از باز کردن دیتابیس و آپدیت ارائه نمیده، اینکه اطلاعات رو جستجو کنید یا بخونید همش دیگه دست شماست
برای اینکه جستجو کنید باید بر اساس یک فیلد این کار رو انجام بدید دیگه، مثلا بگید سطرهایی رو انتخاب کن که فیلد نوع اونها برابر یه چیزی باشه
وقتی که جستجو میکنید هیچ فرقی با خوندن کل اطلاعات نداره بقیه کارتون، فقط کوئری شما تفاوت داره
قبلا برای خوندن کل اطلاعات از جدول، آخرش where نمیذاشتید، حالا برای جستجو باید مشخص کنید چیو میخواین
درست متوجه شدم سوالتون رو ؟؟؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
من داکیومنت این لایبری رو خوندم
به نظر من این لایبری واسه کسایی که با دیتابیس SQL کار نکردن ممکنه خیلی خوب باشه
اما اگر شما قبلا با دیتابیس کار کرده باشین، این لایبری یکم مسخره به نظر میرسه
همچنین این لایبری هنگام کار با دیتابیس آماده و از پیش ساخته شده، دیتابیس رو به صورت ساده دریافت میکنه
اما SQLite asset Helper دیتابیس رو زیپ شده میخونه که باعث میشه حجم برنامه پایین بمونه
آره منم خوندم مثل اینکه همین کاری که شما گفتید میکنه
بهتره از این لایبری استفاده نکنیم چون قدرت برنامه نویسی را میاره پایین
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
سلام
این کتابخونه کار خاصی غیر از باز کردن دیتابیس و آپدیت ارائه نمیده، اینکه اطلاعات رو جستجو کنید یا بخونید همش دیگه دست شماست
برای اینکه جستجو کنید باید بر اساس یک فیلد این کار رو انجام بدید دیگه، مثلا بگید سطرهایی رو انتخاب کن که فیلد نوع اونها برابر یه چیزی باشه
وقتی که جستجو میکنید هیچ فرقی با خوندن کل اطلاعات نداره بقیه کارتون، فقط کوئری شما تفاوت داره
قبلا برای خوندن کل اطلاعات از جدول، آخرش where نمیذاشتید، حالا برای جستجو باید مشخص کنید چیو میخواین
درست متوجه شدم سوالتون رو ؟؟؟
آره... بعضی نرم افزار ها رو دیدن که جستجو در متن دارن من هم میخوام یه قابلیت جستجو در متن در نرم افزارم قرار بدم....
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام اساتید شما که انقد حرفه ای هستین من یه تایپک زدم راجب جستجو توی لیست ویو نگا کنید راهنماییم کنید ممنون ثواب داره:افسرده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
civilroid
سلام اساتید شما که انقد حرفه ای هستین من یه تایپک زدم راجب جستجو توی لیست ویو نگا کنید راهنماییم کنید ممنون ثواب داره:افسرده:
مطمئن باشید دوستان وقتی یک تاپیک جدید ایجاد میشه، اگر بتونن کمکی بکنن دریغ نمیکنن
من کدهای شما رو دیدم، یکم کدهاتون واضح نبود که دارید چکار میکنید، به همین خاطر نتونستم کمکی بکنم
بهتره شما بحث های مربوط به مشکلتون رو توی همون تاپیک دنبال کنید تا انشاالله حل بشه مشکلتون
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
حالا همه درباره همه چی صحبت کردند الا چی، سکوریتی. چه روشهایی برای سکوریت کردن دیتا داریم؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
parvizwpf
حالا همه درباره همه چی صحبت کردند الا چی، سکوریتی. چه روشهایی برای سکوریت کردن دیتا داریم؟
تا جایی که من خبر دارم، اگه خودمون رو هم بکشیم نمیشه صد درصد از دیتابیس محافظت کرد
در حالت عادی دیتابیس برنامه رو میشه به راحتی از توی DDMS بیرون کشید
برای دیتابیس من تا حالا ندیدم جایی رو که بشه پسوورد گذاشت
راه های حفاظت میتونه رمزنگاری داده ها باشه، اما خب باید دید این رمزنگاری و رمزگشایی در حین استفاده، سرعت کار رو پایین نمیاره آیا؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
باسلام
مشکلی در ذخیره اطلاعات به صورت html در sqlite دارم . میخوام کد های html را در قالب یک فیلد در جدول ذخیره کنم و بعد در اندروید در داخل webview نمایش بدم. اما مشکلم اینه که در بین متون html تصویر هم وجود داره و در واقع میخوام تگimg استفاده کنم اما نمیدونم چطور بایدبرا تصویر در داخل تگ img آدرس دهی کرد و تصویر را باید کجا ذخیره کرد که بعد داخل webview نمایش بده. ممنون میشم اگه منو راهنمایی کنید.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
راه های حفاظت میتونه رمزنگاری داده ها باشه، اما خب باید دید این رمزنگاری و رمزگشایی در حین استفاده، سرعت کار رو پایین نمیاره آیا؟
خدایی منم هر جا نگاه کردم راهی صد در صد وجود نداره. چند وقت پیش نیاز مبرمی داشتم که دیتا رو ایمن کنم اما راهی پیدا نکردم. میگن وب سرویس بنویس. دیتام انقدر زیاد بود و ترتیب لودش انقدر زیاد بود مجبور بودم دیتا رو لوکال کنم. این cryptography هم احساس میکنم تو برنامه با دیای سیک جوابگو باشه. لامسب اندروید خیلی داغونه تو این زمینه تازه داره یه راهکارهایی می اندیشه. فکر کنم ios تو این زمینه موفق تر باشه.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
mahnamnia
باسلام
مشکلی در ذخیره اطلاعات به صورت html در sqlite دارم . میخوام کد های html را در قالب یک فیلد در جدول ذخیره کنم و بعد در اندروید در داخل webview نمایش بدم. اما مشکلم اینه که در بین متون html تصویر هم وجود داره و در واقع میخوام تگimg استفاده کنم اما نمیدونم چطور بایدبرا تصویر در داخل تگ img آدرس دهی کرد و تصویر را باید کجا ذخیره کرد که بعد داخل webview نمایش بده. ممنون میشم اگه منو راهنمایی کنید.
سلام
دوست عزیز من در مورد وب ویو نمیتونم راهنمایی کنم
فک میکنم سوالتون مربوط به این تاپیک نباشه، بهتره توی یک تاپیک جدید سوالتون رو مطرح کنید تا دوستانی که اطلاع دارن کمکتون کنن
-
2 ضمیمه
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام خسته نباشید همگی
برای اولین بار تصمیم گرفتم با دیتابیس کار کنم ، میخواستم ببینم برای خوندن و نمایش همچین دیتابیسی چجوری باید عمل کنم (از database asset helper استفاده کردم)
اینم کلاسم ساختم :
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "DataBaseName.db";
private static final int DATABASE_VERSION = 1;
public MyDatabase (Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
بقیه شو نمیدونم چجوری برم جلو :ناراحت: دوستان لطفا راهنمایی کنید تا حالا با دیتابیس کار نکردم
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
الان توی چیش مشکل داری شما؟
دیتابیس رو که ساختید دیگه، حالا طبق آموزشهای صفحه اول برید جلو دیتابیس رو زیپ کنید و توی مسیر asset/databases قرار بدید و بعدش هم طبق آموزش ازش استفاده کنید
همه چیز توی پست اول و پست مربوط به دیتابیس آماده توضیح داده شده که
نمونه برنامه های آماده هم میتونه کمکتون کنه توی نحوه کار با دیتابیس
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
سلام
الان توی چیش مشکل داری شما؟
دیتابیس رو که ساختید دیگه، حالا طبق آموزشهای صفحه اول برید جلو دیتابیس رو زیپ کنید و توی مسیر asset/databases قرار بدید و بعدش هم طبق آموزش ازش استفاده کنید
همه چیز توی پست اول و پست مربوط به دیتابیس آماده توضیح داده شده که
نمونه برنامه های آماده هم میتونه کمکتون کنه توی نحوه کار با دیتابیس
والا خوندم اونارو ، گفتین برای خوندنش از getReadableDatabase استفاده شه ولی من نمیدونم چطوری باید استفاده کنم ، مثلا یکی از مقادیر این دیتا بیس ام رو تو یه textview نشون بدم
بدونم چطوری میشه استفاده کرد دیگه تا تهش میرم
:لبخندساده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آخر دیتابیس یاد نمیگیرم :ناراحت:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
همین بالا 6-7 تا پست قبل تر من همین مثال رو برای یکی از دوستان زدم
https://barnamenevis.org/showthread.p...=1#post2050676
از نمونه برنامه های آماده استفاده کنین قشنگ دستتون میاد چکار کنین
توی این تاپیک هم کلی من مثال زدم
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
badname
آخر دیتابیس یاد نمیگیرم :ناراحت:
منم قرار نبود یاد بگیرم . ولی یکی از رفیقام پیله کرد که یه برنامه ی رساله ی 14 مرجع بسازیم (خیلی خشکه مذهبی بود) و گفت باید برنامه نویسیش زود تموم شه آقا ما هم سفت چسبیدیم به دیتا بیس تا کامل یاد گرفتیم . اون رفیقمم آخرش به بهونه ی این که من دیکامپایل می کنم و حرامه و اینا دبه کرد و ما را گذاشت سر کار و پروژه را نصف کاره ول کرد.
حالا یه توصیه به شما دارم اونم اینه که برای یاد گیری انگیزه داشته باشید و یه چیزی را که می خواین یاد بگیرین محکم بچسبید و نگذارید چیز هایی مثل نمی تونم و اینا جلو تون را بگیره . سعی کنید منابع مربوط بهش را مطاله کنید . من اولین بار که کار با دیتابیس را دیدم فکر کردم خیلی سخته ولی حالا می بینم از خیلی کارا راحت تره و بیشتر وقتا ازش استفاده می کنم.
وقتی یه برنامه ی خیلی باحال می بینید نگید کاش برنامه ی منم مثل این بود فقط بگید کارمو کی شروع کنم . خدا بزرگه . امتحان کردم که میگم.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
والا بازم نتونستم :ناراحت:
این قضیه ش با بقیه چیزا فرق میکنه منم واسه خیلی چیزا تلاش میکنم تا یاد بگیرم و میگیرم اما رو بحث دیتا بیس حتی یه دیتای ساده از دیتا بیس ام نمی تونم نمایش بدم
فکر کنم کلا بد متوجه شدم هر چی ام سعی میکنم نمیشه :ناراحت:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آخه من هرچی که توی چنته داشتم اینجا آموزش دادم دیگه
یعنی من هر کمکی که بخوام به شما بکنم، فقط بازگو کردن چیزایی هست که قبلا گفتم
دیگه این وظیفه شماست از چیزایی که گفته شده اینجا استفاده کنید
من یک توصیه میکنم، شما به دیتابیس آماده کار نداشته باش، پست اول این تاپیک آموزش ساخت دیتابیس درون برنامه و استفاده از اونه
شما از همون روش ابتدایی شروع کن و یاد بگیر، بعدش که پیشرفت بهتری داشتی کارای بزرگتر انجام بده
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
آخه من هرچی که توی چنته داشتم اینجا آموزش دادم دیگه
یعنی من هر کمکی که بخوام به شما بکنم، فقط بازگو کردن چیزایی هست که قبلا گفتم
دیگه این وظیفه شماست از چیزایی که گفته شده اینجا استفاده کنید
من یک توصیه میکنم، شما به دیتابیس آماده کار نداشته باش، پست اول این تاپیک آموزش ساخت دیتابیس درون برنامه و استفاده از اونه
شما از همون روش ابتدایی شروع کن و یاد بگیر، بعدش که پیشرفت بهتری داشتی کارای بزرگتر انجام بده
آره دقیقا به همین نتیجه رسیدم اول با همون آموزش اولی برم جلو بعد وارد این شم
بابت آموزشاتم ممنون ، خوب آموزش دادی منتحی من یچیزی اشتباه فهمیدم یا درست استفاده نمیکنم احتمالا ... یه دور برگردون بزنم از اول بیام شاید اوکی شد .:لبخندساده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام دوستان
من تو یه دیتابیس 120 ردیف دارم
اونو تو لیست ویو فراخوانی میکنم.فقط 100 تاش میاد.چطور این مشکل رو حل کنم؟
ممنونم
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
من از لایبری sqlite asset helper استفاده میکنم که تو table خودم یه ستون به نام favorite دارم برای لیست علاقه مندی ها
مقادیر این table همه no هستند که میخوام باید با کلیک رو دکمه افزودن به yes تبدیل شود
برای این عمل باید چیکار کنم؟؟
در کلاس Adapter ای که ساختید ، درون متد getView ، این کد ها رو لازم دارید : ( البته در این مثال من از یک CheckBox برای این منظور استفاده کردم)
یک نمونه کد عالی هم جناب آقای poorman قرار دادن با عنوان " نمونه برنامه افزودن به علاقه مندی ها" که مسیرش این جاست :
https://barnamenevis.org/showthread.p...=1#post2016418
@Override
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.item, null, true);
CheckBox check_favotite = (CheckBox) rowView.findViewById(R.id.checkbox);
.
.
.
if (favorite [position].equals("no"))
favotite.setChecked(false);
else
favotite.setChecked(true);
favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
MyDatabase MyDatabase = new MyDatabase(context);
SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
if (isChecked == true) {
mydb.execSQL("update list set like = 'yes' where id = " + ids[position]);
} else {
mydb.execSQL("update list set like = 'no' where id = "+ ids[position]);
}
mydb.close();
}
});
return rowView;
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
narvanco
سلام دوستان
من تو یه دیتابیس 120 ردیف دارم
اونو تو لیست ویو فراخوانی میکنم.فقط 100 تاش میاد.چطور این مشکل رو حل کنم؟
ممنونم
سلام
مطمئن هستید که رکوردهاتون 120 تا هست ؟؟؟
کدی که از دیتابیس میخونید رو بذارید تا ببینیم مشکل از کجاست
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
با سلام خدمت استاد خودم آقای poorman عزیز
طبق آموزش های شما بالاخره تونستم اطلاعات رو از یک بانک اطلاعاتی به لیست ویو بفرستم و نمایش بدم.
اما یه مشکل کوچیک وجود داره. هر بار که برنامه رو میبندم و دوباره اجراش می کنم(در گوشی موبایلم) ، تعداد عناصر قبلی در لیست ویو، دو برابر میشه. یعنی همون عناصر قبلی مجددا تکرار میشن!!!
اشکال از کدوم قسمت کد من هستش؟
بازم بابت پاسخ های قشنگتون ممنونم.
public class MainActivity extends Activity {
SQLiteDatabase mydb;
private static String DBNAME = "PERSONS";
private static String TABLE = "MY_TABLE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listView1);
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE + " (ID INTEGER PRIMARY KEY, NAME TEXT, AGE INTEGER)");
mydb.execSQL("INSERT INTO " + TABLE + " ( NAME , AGE ) VALUES ('Ali', 21)");
mydb.close();
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
Cursor allrows = mydb.rawQuery("SELECT * FROM " + TABLE, null);
String[] NAME = new String[allrows.getCount()];
int i = 0;
if (allrows.moveToFirst()) {
do {
NAME[i] = allrows.getString(1);
i++;
} while (allrows.moveToNext());
allrows.close();
mydb.close();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, NAME);
listView.setAdapter(adapter);
}
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
تشکر از لطفت آقا علیرضا
شما هر بار که برنامه رو اجرا میکنی، یک بار داری اطلاعات رو داخل جدول insert میکنی
به همین دلیل به ازای هر بار اجرای برنامه یک رکورد اضافه میشه
دو تا راه وجود داره، یکی اینکه مثلا یک دکمه باشه توی برنامه که با زدن اون اطلاعات به دیتابیس اضافه بشه
یا قبل از اضافه شدن تعداد سطرهای داخل جدول رو چک کنید که اگر خالی بود insert کنه اگر نه کاری نکنه
cursor c = mydb.rawQuery("select * from yourTable");
if(c.getCount() == 0){
//insert into table
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام استاد.
استاد در پروژه ام نیاز دارم بخشی رو به عنوان علاقه مندی ایجاد کنم.
همه کارها رو انجام دادم اما نمیدونم چرا وقتی از execSql استفاده میکنم برنامه کلوز میشه.
این ها هم کدهام هستن :
public void favoriteManage(View v){
MyData = new MyDatabase(this);
mydb = MyData.getReadableDatabase();
Cursor row = mydb.rawQuery("SELECT * FROM food "
+ " WHERE food.ID_Food = " + FoodID, null);
row.moveToFirst();
int getFav = row.getInt(row.getColumnIndex("Favorite"));
mydb = MyData.getWritableDatabase();
switch (getFav) {
case 1:
mydb.execSQL("UPDATE food SET Favorite = 0 WHERE ID_Food = 1", null);
btnFavorite.setBackgroundResource(R.drawable.fav_o ff);
Toast.makeText(getBaseContext(), ".از علاقه مندی ها حذف گردید", Toast.LENGTH_LONG).show();
break;
case 0:
mydb.execSQL("UPDATE food SET Favorite = 1 WHERE ID_Food = 1", null);
btnFavorite.setBackgroundResource(R.drawable.fav_o n);
Toast.makeText(getBaseContext(), "به علاقه مندی ها اضافه گردید.", Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
ممنونم :چشمک::لبخندساده:
مثل اینکه insert هم کار نمیکنه!!!
این هم فایل mydatabse.java است :
public class MyDatabase extends SQLiteAssetHelper{
private static final String DATABASE_NAME = "mydbs.db";
private static final int DATABASE_VERSION = 1;
public MyDatabase (Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
حل شد.
باید NULL رو از انتهای دستور آپدیت در execSQL بر میداشتم.
ممنون.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
مشکل:
یه ستون بسازید مثلاً به اسم id ، و به صورت خودکار افزایشی (AI) و همچنین NOT NULL قرار بدین.
در این صورت برنامه اصلاً اطلاعات رو نمیخونه !
تست کنید ببینید واسه شما هم اینطور هست یا نه.
راه حل:
برنامه رو باید ابتدا از گوشی پاک کنید!!!
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
smemamian
سلام
مشکل:
یه ستون بسازید مثلاً به اسم id ، و به صورت خودکار افزایشی (AI) و همچنین NOT NULL قرار بدین.
در این صورت برنامه اصلاً اطلاعات رو نمیخونه !
تست کنید ببینید واسه شما هم اینطور هست یا نه.
راه حل:
برنامه رو باید ابتدا از گوشی پاک کنید!!!
!!!!!!!
یعنی چی ؟؟؟ به هیچ عنوان به چنین مشکلی برنخوردم تا حالا
البته یک نکته که من جایی خوندم این بود که توی دیتابیس آماده تمام مقادیر id رو به id_ تغییر بدید
ولی اینکه میگید بعد از پاک کردن برنامه مشکل حل میشه، حدس میزنم مشکل مال ورژن دیتابیس برنامتون باشه، یعنی شما بعد از اینکه روی دیتابیس برنامتون تغییراتی میدید ورژن رو اضافه نمیکنید تا دیتابیس خودش رو آپدیت کنه
روش افزایش ورژن دیتابیس و آپدیت دیتابیس اینجا گفته شده
-
1 ضمیمه
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوستان تو این تصویر خطا در دیتابیس منه یا در کدها و روش نوشتن ساخت دیتابیس در کلاس؟
ضمیمه 121570
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
مشکل از جدول SQLite شماست و یا کوئری که دارید مینویسید
شما داخل کوئری تون اومدید ستون های آیدی، عنوان، ... و sub رو select کردید
این خطا داره میگه ستونی به اسم sub توی جدولتون ندارید
ممکنه شما این ستون رو داشته باشید، اما فایل دیتابیس پروژتون رو آپدیت نکرده باشید
به هرحال یا باید این ستون وجود داشته باشه، یا اینکه شما این ستون رو از توی کوئری حذف کنید