صفحه 6 از 12 اولاول ... 45678 ... آخرآخر
نمایش نتایج 201 تا 240 از 457

نام تاپیک: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

  1. #201

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    سلام

    مشکل از جدول SQLite شماست و یا کوئری که دارید مینویسید

    شما داخل کوئری تون اومدید ستون های آیدی، عنوان، ... و sub رو select کردید

    این خطا داره میگه ستونی به اسم sub توی جدولتون ندارید

    ممکنه شما این ستون رو داشته باشید، اما فایل دیتابیس پروژتون رو آپدیت نکرده باشید

    به هرحال یا باید این ستون وجود داشته باشه، یا اینکه شما این ستون رو از توی کوئری حذف کنید

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

    عذر میخوام به سوال هم از محضر شما در این بخش کردم.ممنون میشم جواب بدید لطفا.

  2. #202

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط narvanco مشاهده تاپیک
    ممنونم دوست من.
    من ستون sub رو اضاقه کردم به دیتابیس و بعد اومدم دستور جدید رو که در پایان ساخت sqlite میده رو به پروژه آوردم و قسمت sub رو اضاقه کردم..الان تو دیتابیس sub داره تو پروژه هم sub معرفی شده..اما فکر میکنم اینکه اومدم یه ستون یه دیتابیس اضاقه کردم خراب شده باشه.درسته؟
    آقا جکار میتونیم بکنم؟یه دیتابیس زیادیه.او چیزی که فرمودید آپدیت نکردم چطوری باید این کار رو بکنم؟
    خیلی ممنونم ازتون

    عذر میخوام به سوال هم از محضر شما در این بخش کردم.ممنون میشم جواب بدید لطفا.
    این اضافه کردن ستون و اینا رو متوجه نشدم دقیقا چکار کردید

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

    شما دارید از لایبری دیتابیس آماده استفاده میکنید؟ اگر آره، این لایبری یک خاصیت داره که اگر تغییری توی دیتابیس بدید باید یکی به ورژن اضافه کنید و یک خط کد رو توی کلاس MyDatabase اضافه کنید که توی صفحه اول همین تاپیک، تقریبا پست های آخر توضیح داده شده

    حالا به هرحال قضیه اینجاست که تا ورژن بالا نره، برنامه از دیتابیس قبلی که قبلا توی دیوایس کپی شده استفاده میکنه

    راه ساده اینه که شما برید داخل ایمولاتور، قسمت تنظیمات، بعد مدیریت برنامه ها یا app manager و بعد توی قسمت برنامتون، دیتا رو پاک کنید clear data

    دیگه اینطوری وقتی دیتابیسی توی دیوایس نباشه، برنامه مجبور میشه فایل دیتابیس رو دوباره کپی کنه

  3. #203

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    دوستان یه سوال
    چطوری میشه در دیتابیس بر اساس فیلدی بجز id انتخلب رو انجام داد ؟؟؟
    خیلی برام عجیبه کد اول درسته ولی کد دومی خطا میده !!
    Cursor cursor = mDataBase.rawQuery("SELECT FROM L1 WHERE ID = 1" , null);

    Cursor cursor = mDataBase.rawQuery("SELECT FROM L1 WHERE name = ali" , null);


    ممنون

  4. #204

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط scofield مشاهده تاپیک
    دوستان یه سوال
    چطوری میشه در دیتابیس بر اساس فیلدی بجز id انتخلب رو انجام داد ؟؟؟
    خیلی برام عجیبه کد اول درسته ولی کد دومی خطا میده !!
    Cursor cursor = mDataBase.rawQuery("SELECT FROM L1 WHERE ID = 1" , null);

    Cursor cursor = mDataBase.rawQuery("SELECT FROM L1 WHERE name = ali" , null);


    ممنون
    خب دوستان لطف کردن توی تاپیکی که جداگانه ساختید جواب دادن

    من فقط لینک جواب رو میذارم که اگر کسی این مشکل رو داشت به جواب برسه

    https://barnamenevis.org/showthread.p...=1#post2071431

  5. #205

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    ببخشید بنده یه لیست ویو به زبان html دارم . می شه براش به وسیله دیتابیس قسمت علاقه مندی ها گذاشت ؟ یعنی آیتم از لیست ویو که انتخاب شد بره داخل یه صفحه دیگه و اونجا به علاقه مندی های کاربر اضافه شه . با تشکر

  6. #206

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mdibmehr2 مشاهده تاپیک
    ببخشید بنده یه لیست ویو به زبان html دارم . می شه براش به وسیله دیتابیس قسمت علاقه مندی ها گذاشت ؟ یعنی آیتم از لیست ویو که انتخاب شد بره داخل یه صفحه دیگه و اونجا به علاقه مندی های کاربر اضافه شه . با تشکر
    سلام

    متاسفانه من با زبان HTML و کار با دیتابیس در اون آشنا نیستم

    این آموزش ها مربوط به زبان جاوا و اکلیپس هست، سوالی توی زبان جاوا داشتید در خدمتم

  7. #207

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    سلام دوستان

    برای افزایش سرعت insert چه راه هایی وجود داره ؟

    من مشابه اینجا insert میکنم و سایر کار ها

  8. #208

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    فیلم آموزش ASP.Net به زبان فارسی از مقدماتی تا پیشرفته را از لینکهای زیر دانلود کنید

    قسمت سوم

  9. #209

    نقل قول: کار با دیتابیس آماده به آسانی با استفاده از لایبری sqlite asset helper

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    آموزش کار با دیتابیس آماده SQLite

    برای ساخت یک دیتابیس خارجی و آماده نرم افزار SQLite Database Browser رو پیشنهاد میکنم

    نمونه کار با دیتابیس آماده و نمایش و آپدیت اطلاعات دیتابیس رو از این پست دریافت کنید

    -----------------------------------------------------------------------------------------------

    بالاخره من دیشب تونستم تمام مشکلات مربوط به دیتابیس آماده رو حل کنم و ارتباط خوبی برقرار کنم با لایبری
    sqlite asset helper

    ( با تشکر از hamedjj به خاطر پافشاری روی استفاده از این لایبری )

    ولی خب استفاده از این لایبری هم یکم برام گیج کننده بود که خدا رو شکر تونستم آخرش راه بندازمش
    من یه توضیح میدم واسه کسایی که میخوان با دیتابیس آماده کار کنن و مثل من به مشکل خوردن

    انصافا استفاده از
    sqlite asset helper راحته و بسیار کارا
    یکی از مشکلاتی که من برخورد کردم توی استفاده از کلاس های دیگه، این بود که توی اندروید 10 به پایین دیتابیس رو ایجاد نمیکرد ولی این لایبری مشکل رو حل کرد

    خب دوستانی که با اکلیپس کار میکنن این فایل jar رو دانلود کنن و توی پروژه مورد نظر در پوشه
    libs قرار بدن

    لینک فایل jar


    توی پوشه
    assets یک پوشه به اسم databases بسازید

    بعد دیتابیس خودتون رو
    zip کنید ( فایل دیتابیس به تنهایی باید پسوند .db داشته باشه )

    فایل زیپ شده رو با فرمت اسم
    ( DataBaseName.db.zip ) توی پوشه databases بذارید. ( دقت کنید باید هم پسوند db هم پسوند zip داشته باشه )

    یعنی نمایش فایل زیپ توی ویندوز به صورت
    DataBaseName.db و نمایش توی اکلیپس به شکل DataBaseName.db.zip باشه

    بعدش این کلاس رو ایجاد کنین



    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);
    }
    }


    توی کلاسی که ایجاد کردین اسم دیتابیس خودتون رو با پسوند
    db وارد کنین

    بعدش توی اکتیویتی توی متغیرهای عمومی یک نمونه از این کلاس تعریف کنید، به این صورت :
    private MyDatabase MyDataBase;


    و بعد توی متد onCreate این خط کد رو بنویسین :
    MyDataBase = new MyDatabase(this);


    حالا هر جایی که خواستین دیتابیس رو باز کنین، میتونین از دو تا حالت
    getWritableDatabase() و getReadableDatabase() که برای خوندن و نوشتن هست استفاده کنین
    به صورت زیر مثلا :

    mydb = MyDataBase.getReadableDatabase();


    وقتی getReadableDatabase استفاده میکنید، فقط عملیات خواندن رو میتونید انجام بدید

    پس برای نوشتن یا آپدیت و دیلت باید از getWritableDatabase استفاده کنید

    به همین سادگی، فقط باید تمام این مراحل رو به ترتیب و همینطور که گفتم انجام بدید که به مشکل نخورید
    ( zip کردن دیتابیس برای اینه که توی اندروید 10 به پایین خطا نگیرید )

    آموزش کار با دیتابیس ( خواندن، نوشتن، آپدیت و دیلت ) توی همین تاپیک قرار داده شده

    لطفا بعد از مطالعه درصورت وجود مشکل سوال بپرسید در خدمتم


    ----------------------------------------------------------------------------------------------

    برای آپدیت کردن اطلاعات دیتابیس آماده به این پست مراجعه کنید

    اگر مفید واقع شد، دکمه تشکر این پایینه
    ببخشید فایل sqliteبا پسوند sqlite. ذخیره میشه و وقتی پسوندش و تبدیل به db.میکنم،نمیشناسه و حتی موقع زیپ کردن این پسوند و نادیده می گیره ، باید چیکار کنم ؟

  10. #210

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    از برنامه ای که برای کار با دیتابیس آماده معرفی کردم استفاده کنید، من با برنامه های دیگه کار نکردم و توی مسائل فرمت ذخیره کردنشون اطلاعی ندارم

  11. #211
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    برای کار با پایگاه داده یک کلاس نوشتم که می تونید در تایپیک زیر ببینید
    https://barnamenevis.org/showthread.p...=1#post2087129

    موفق باشید

  12. #212

    نقل قول: آموزش : کار با دیتابیس SQLite، ساختن و استفاده از دیتابیس آماده

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    سلام

    کاری نداره شما باید برای کوئری فقط یک شرط بذارید تا اطلاعات اون سطر رو برگردونه

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

    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 ) داخل تکست ویو نمایش داده میشه
    سلام به همه دوستان .میشه لطف کنید بگید چرا من با نوشتن این کدها چیزی در برنامم نوشته نمیشه با اینکه خطایی نمیدهد و می گوید دیتابیس باز شده است ولی متنی نمایش داده نمیشود .
    ;(MyDataBase= new MyDatabase(this

    ;()mydb = MyDataBase.getReadableDatabase
    ;(Cursor cursor= mydb.rawQuery("SELECT * FROM "+ TABLE, null
    ;()cursor.moveToFirst
    ;((txt.setText( cursor.getString(3
    ;()cursor.close
    ;()mydb.close

    آخرین ویرایش به وسیله **nastaran** : دوشنبه 10 شهریور 1393 در 11:17 صبح

  13. #213

    نقل قول: آموزش : کار با دیتابیس SQLite، ساختن و استفاده از دیتابیس آماده

    نقل قول نوشته شده توسط **nastaran** مشاهده تاپیک
    سلام به همه دوستان .میشه لطف کنید بگید چرا من با نوشتن این کدها چیزی در برنامم نوشته نمیشه با اینکه خطایی نمیدهد و می گوید دیتابیس باز شده است ولی متنی نمایش داده نمیشود .
    ;(MyDataBase= new MyDatabase(this

    ;()mydb = MyDataBase.getReadableDatabase
    ;(Cursor cursor= mydb.rawQuery("SELECT * FROM "+ TABLE, null
    ;()cursor.moveToFirst
    ;((txt.setText( cursor.getString(3
    ;()cursor.close
    ;()mydb.close

    مطمئن هستید داخل ستونتون چیزی وجود داره ؟ من حدس میزنم داخل ستونی که دارید اطلاعاتش رو میخونید چیزی نیست

    ایندکس 3 که شما نوشتید میشه ستون چهارم جدولتون ( ممکنه به این دقت نکرده باشید )

    از این کد استفاده کنید تا دقیقا مقدار همون ستونی که میخواید رو بگیرید و مطمئن بشید اون ستون مقدار داره

    txt.setText( cursor.getString(cursor.getColumnIndex("columnName  ")));

  14. #214

    نقل قول: آموزش : کار با دیتابیس SQLite، ساختن و استفاده از دیتابیس آماده

    ممنون از پاسختون
    بله مقدار دارد ولی ستون چهارمم مقدار عددی بود الان ایندکس رو 2 هم گذاشتم که مربوط به ستون متنی بود باز هم چیزی نمی نویسد حتی از این دستور هم گفتید استفاده کردم و به جای آن "name" نوشتم که مربوط به یکی از ستونهایم بود ولی باز هم خروجی ندارد.عکس دیتابیس رو هم براتون گذاشتم
    ax.png

  15. #215

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    شاید شما دیتابیستون رو آپدیت نکردید توی برنامه

    احتمال داره اول که دیتابیس رو ساختید خالی بوده و بعد اطلاعات رو توش وارد کردید و گذاشتید توی پوشه asset اما یادتون رفته توی کلاس myDatabase ورژن رو یکی اضافه کنید و خط setForcedUpgrade() رو به تابع myDatabase توی همون کلاس اضافه کنید

    درصد زیادی احتمال داره که برنامه داره از دیتابیس قبلی استفاده میکنه

    یا دیتابیس برنامه رو از توی ایمولاتور -> تنظیمات -> برنامه ها -> اسم برنامه -> clear data پاک کنید

    یا اینکه به روشی که گفتم دیتابیس رو آپدیت کنید

  16. #216

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    شاید شما دیتابیستون رو آپدیت نکردید توی برنامه

    احتمال داره اول که دیتابیس رو ساختید خالی بوده و بعد اطلاعات رو توش وارد کردید و گذاشتید توی پوشه asset اما یادتون رفته توی کلاس myDatabase ورژن رو یکی اضافه کنید و خط setForcedUpgrade() رو به تابع myDatabase توی همون کلاس اضافه کنید

    درصد زیادی احتمال داره که برنامه داره از دیتابیس قبلی استفاده میکنه

    یا دیتابیس برنامه رو از توی ایمولاتور -> تنظیمات -> برنامه ها -> اسم برنامه -> clear data پاک کنید

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

  17. #217

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    دوستان
    وقتی در دیتابیس متون عربی نوشته میشه و میخوام اونو در تکست ویو بیارم ، حرکات بهم ریخته میشه و خیلی نزدیک به حرف ها قرار میگیرن.
    مشکل چی میتونه باشه؟
    خیلی ممنون

  18. #218

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

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

    مشکل از دیتابیس نیست، مشکل از فونت شماست یا اینکه اگر از کلاس های فارسی ساز استفاده میکنید، مشکل از اوناست

  19. #219
    کاربر دائمی آواتار mz6488
    تاریخ عضویت
    تیر 1391
    محل زندگی
    قشم
    پست
    429

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

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

  20. #220

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mz6488 مشاهده تاپیک
    سلام.با تشکر از مطلب خوبتون.می خوام به دیتابیس برنامه م موقع اجرا دسترسی داشته باشم.باید چکار کنم؟
    سلام، ممنون متوجه منظورتون نشدم، یعنی چی میخواین موقع اجرا به دیتابیس دسترسی داشته باشید؟ این مطالبی که آموزش دادم همه درباره اینه که در حین اجرا یک سری عملیاتی رو با دیتابیس انجام بدید، از دیتابیس بخونید، بنویسید و ... اگر چیز دیگه ای منظورتون هست، بیشتر توضیح بدید

  21. #221
    کاربر دائمی آواتار mz6488
    تاریخ عضویت
    تیر 1391
    محل زندگی
    قشم
    پست
    429

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

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

  22. #222

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mz6488 مشاهده تاپیک
    من دیتابیس جدید رو تو sdCard می ذارم.می خوام که دیتابیس رو از sdCard کپی کنم و جایگزین دیتابیس قبلی کنم که فکر کنم تو پوشه data ذخیره میشه.ولی نمیتونم بهش دسترسی داشته باشم.
    اینم بگم که بنا به دلایلی می خوم دیتابیس رو جایگزین کنم(هر دفعه فقط دیتابیس رو میذارم تو sdCard).امیدوارم متوجه منظورو شده باشین هر چند عجیب غریبه ولی به شدت نیازش دارم
    متاسفانه فکر نکنم بتونم توی این زمینه راهنمایی کنم، تجربه ای ندارم توی این قسمت

  23. #223

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    سلام استاد poorman خسته نباشید.
    متن تونستم یک جستجو در متن بسازم که متن ها رو از دیتا بیس می گیره.ولی من می خوام جستجو به صورت هایلایت و با نمایش متن مورد جستجو انجام بگیره.برای این کار چیکار باید بکنم. (در جستجویی که من دارم صرفا سر تیر موضوع رو نشون میده و متن های اصلی که کلمه مورد نظر در اون هست نشون داده نمی شه.
    می خوا یه چیزی مثل عکس پایین بشه.
    با تشکر و سپاس از شما.

    http://s.cafebazaar.ir/1/upload/scre...ciallegal2.jpg

  24. #224

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    سلام .
    من میخوام برنامه وقتی آپدیت میشه لازم نباشه که قبلی رو حذف کنیم و خودش عمل حذف رو انجام بده.
    از دستوراتی که نوشته بودید استفاده کردم اما نشد.
    کد اون بخش رو میزارم لطفا راهنماییم کنید.
    متشکرم

    public DBAdapter(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    }

    private static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
    // DATABASE_VERSION = 1
    super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    try {
    db.execSQL(CREATE_TABLE);
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
    + newVersion + ", which will destroy all old data");

    db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
    onCreate(db);
    }
    }
    [/JAVA][/JAVA][/JAVA][/JAVA]

  25. #225
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    سلام
    من از روی نمونه کدی که گذاشته بودید لیستی درست کردم و برنامه بدون مشکل اجرا میشه و اطلاعات رو نشون میده
    اما:
    وقتی دکمه fav رو میزنم و از اکتیویتی بیرون میرم و برمیگردم ، تغییرات اعمال نشده
    بلافاصله بعد از کد sql update یک toast گذاشتم و وضعیت fav رو چک کردم و دیدم تغییرات اعمال نمیشه
    دستور sql update رو جداگانه در sqlite اجرا کردم ولی مشکلی نداشت و تغییرات رو اعمال می کنه

    		favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {			
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    MyDatabase MyDatabase = new MyDatabase(context);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    if(isChecked == true) {
    mydb.execSQL("update [main].[tb_book] set fav = '1' where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=1 / favpos:"+fav[position]+" / idpos:"+ID[position], 1000).show();
    } else {
    mydb.execSQL("update [main].[tb_book] set fav = 0 where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=0"+position, 1000).show();
    }
    mydb.close();
    }

    });


  26. #226
    کاربر دائمی آواتار saeed_g21
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    تبریز
    پست
    1,078

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mojniknam مشاهده تاپیک
    وقتی دکمه fav رو میزنم و از اکتیویتی بیرون میرم و برمیگردم ، تغییرات اعمال نشده
    بلافاصله بعد از کد sql update یک toast گذاشتم و وضعیت fav رو چک کردم و دیدم تغییرات اعمال نمیشه
    یعنی هیچ Toastی نشان داده نمیشه ؟
    در این حالت مشکل از شرطی که قراردادین میتونه باشه

    نقل قول نوشته شده توسط mojniknam مشاهده تاپیک
    دستور sql update رو جداگانه در sqlite اجرا کردم ولی مشکلی نداشت و تغییرات رو اعمال می کنه
    فقط Query بروزرسانی رو اجرا کردین بدون شرط ؟

  27. #227
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    toast رو نشون میده ولی مقدار فیلد fav رو 0 نشون میده درحالیکه در یک خط قبلش با sql update اون رو 1 کردیم
    query:
    update [main].[tb_book] set fav = 1 where ID = 1;

  28. #228
    کاربر دائمی آواتار saeed_g21
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    تبریز
    پست
    1,078

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mojniknam مشاهده تاپیک
    toast رو نشون میده ولی مقدار فیلد fav رو 0 نشون میده درحالیکه در یک خط قبلش با sql update اون رو 1 کردیم
    query:
    update [main].[tb_book] set fav = 1 where ID = 1;
    درسته یک کردین ولی گفتین اگه isChecked مساوی true باشه اینکار رو کنه و در else گفتین در غیر اینصورت اینکار رو کنه که اون Toast همون قسمت Else شرط است!
    پس با این حساب شما چیزی رو 1 نکردین


    ببین مقدار isChecked چی هست ؟
    Toast.makeText(getContext(), ""+isChecked, 1).show();

  29. #229
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    من توی هر دو قسمت شرط toast گذاشتم
    favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {            
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    MyDatabase MyDatabase = new MyDatabase(context);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    if(isChecked == true) {
    mydb.execSQL("update [main].[tb_book] set fav = 1 where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=1 / favDB:"+fav[position], 1000).show();
    } else {
    mydb.execSQL("update [main].[tb_book] set fav = 0 where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=0 / favDB:"+fav[position], 1000).show();
    }
    mydb.close();
    }
    });


    خط 6 میگه: روی دکمه fav که کلیک شده اگه true شده بنابراین .......
    خط 7 میگه: اگه true بود توی دیتابیس fav رو 1 کنه
    خط 8 میگه: toast رو نشون بده که مقدار fav در دیتا بیس چنده (که برای من نشون میده 0)
    خط 9: در غیر اینصورت (اگه پس از کلیک کردن روی دکمه fav برابر با false شده باشه)
    خط 10: توی دیتابیس fav رو 0 کنه
    خط 8 میگه: toast رو نشون بده که مقدار fav در دیتا بیس چنده (که برای من نشون میده 0)

  30. #230
    کاربر دائمی آواتار saeed_g21
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    تبریز
    پست
    1,078

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    منظورم رو نگرفتی

    ببین اصلا متن Toast هارو یه چیزه دیگه کن مثل هم نباشند دوباره تست بزنی میبینی فقط قسمت else شرط برات اجرا میشه

    روی خط 6 Breakpoints بزار و debug رو بزن تا اجرا شه (run نزنی) میبینی به اون خط که رسید میپره به else دستور

  31. #231
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    شرط درست اجرا میشه
    متن toast هم متفاوته (اول یکیش fav=1 نوشته و اول یکی دیگه اش fav=0 نوشته)
    یک نکته ای که شاید اهمیت داشته باشه اینه که fav از نوع integer هست

  32. #232

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط zikimiki مشاهده تاپیک
    سلام استاد poorman خسته نباشید.
    متن تونستم یک جستجو در متن بسازم که متن ها رو از دیتا بیس می گیره.ولی من می خوام جستجو به صورت هایلایت و با نمایش متن مورد جستجو انجام بگیره.برای این کار چیکار باید بکنم. (در جستجویی که من دارم صرفا سر تیر موضوع رو نشون میده و متن های اصلی که کلمه مورد نظر در اون هست نشون داده نمی شه.
    می خوا یه چیزی مثل عکس پایین بشه.
    با تشکر و سپاس از شما.

    http://s.cafebazaar.ir/1/upload/scre...ciallegal2.jpg
    سلام

    این چیزی که میخواین پیاده سازی کنید ارتباطی به دیتابیس نداره
    بعد از اینکه جستجو رو انجام دادید، موقع نمایش باید این مورد پیاده سازی بشه

    یعنی توی نتایجی که به دست اومده، هرجایی که اون کلمه وجود داره رو هایلایت کنید

  33. #233

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط narvanco مشاهده تاپیک
    سلام .
    من میخوام برنامه وقتی آپدیت میشه لازم نباشه که قبلی رو حذف کنیم و خودش عمل حذف رو انجام بده.
    از دستوراتی که نوشته بودید استفاده کردم اما نشد.
    کد اون بخش رو میزارم لطفا راهنماییم کنید.
    متشکرم

    public DBAdapter(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    }

    private static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
    // DATABASE_VERSION = 1
    super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    try {
    db.execSQL(CREATE_TABLE);
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
    + newVersion + ", which will destroy all old data");

    db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
    onCreate(db);
    }
    }
    [/JAVA][/JAVA][/JAVA][/JAVA]
    سلام

    شما باید هر دفعه که تغییری توی دیتابیس انجام میدید ورژن رو یکی اضافه کنید
    در این صورت تابع onUpgrade اجرا میشه و دیتابیستون رو آپدیت میکنه

    اگر از دیتابیس آماده و لایبری SQLiteAsset Helper استفاده کنید این کار تنها با بالا بردن ورژن انجام میشه

  34. #234

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط mojniknam مشاهده تاپیک
    سلام
    من از روی نمونه کدی که گذاشته بودید لیستی درست کردم و برنامه بدون مشکل اجرا میشه و اطلاعات رو نشون میده
    اما:
    وقتی دکمه fav رو میزنم و از اکتیویتی بیرون میرم و برمیگردم ، تغییرات اعمال نشده
    بلافاصله بعد از کد sql update یک toast گذاشتم و وضعیت fav رو چک کردم و دیدم تغییرات اعمال نمیشه
    دستور sql update رو جداگانه در sqlite اجرا کردم ولی مشکلی نداشت و تغییرات رو اعمال می کنه

            favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {            
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    MyDatabase MyDatabase = new MyDatabase(context);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    if(isChecked == true) {
    mydb.execSQL("update [main].[tb_book] set fav = '1' where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=1 / favpos:"+fav[position]+" / idpos:"+ID[position], 1000).show();
    } else {
    mydb.execSQL("update [main].[tb_book] set fav = 0 where ID = " + ID[position]);
    Toast.makeText(getContext(), "fav=0"+position, 1000).show();
    }
    mydb.close();
    }

    });
    سلام

    به نظرم با شرط زیر بهتر میشه کار کرد

    if(fav[position] == 1){
    fav[position] = 0;
    }else{
    fav[position] = 1;
    }

    update database set fav = fav[position]


    امتحان کنید، فکر میکنم مشکلتون رو حل کنه

    حتما یادتون باشه که چک باکس رو توی getView براساس وضعیتی که داره تغییر بدید
    if(fav[position] == 1){
    checkBox.setChecked(true);
    }else{
    checkBox.setChecked(false);
    }

  35. #235

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    سلام

    این چیزی که میخواین پیاده سازی کنید ارتباطی به دیتابیس نداره
    بعد از اینکه جستجو رو انجام دادید، موقع نمایش باید این مورد پیاده سازی بشه

    یعنی توی نتایجی که به دست اومده، هرجایی که اون کلمه وجود داره رو هایلایت کنید
    ممنون از پاسخ گویی شما
    مشکل من اینجاست که نمی دونم برای نمایش از چه کدی باید استفاده کنم .توی فروم های خارجی ! هم گشتم ولی چیزی پیدا نکردم.شما کدی برای نمایش به صورت هایلات سراغ دارید؟

  36. #236

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نقل قول نوشته شده توسط zikimiki مشاهده تاپیک
    ممنون از پاسخ گویی شما
    مشکل من اینجاست که نمی دونم برای نمایش از چه کدی باید استفاده کنم .توی فروم های خارجی ! هم گشتم ولی چیزی پیدا نکردم.شما کدی برای نمایش به صورت هایلات سراغ دارید؟
    شما میتونید از Spannable برای این کار استفاده کنید

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

    کار باهاش راحت هست، توی گوگل جستجو کنید

    http://stackoverflow.com/questions/4...xtview-settext
    http://stackoverflow.com/questions/2...spannable-text
    http://stackoverflow.com/questions/1...d-for-textview


    راه دیگه هم استفاده از فرمت HTML برای تکست هست

  37. #237
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    نشد!
    کل کد Adapter رو میذارم
    package ir.niknam.daghdagheha;

    import android.os.Bundle;
    import android.app.Activity;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.widget.ListView;


    public class ActivityFehrest extends Activity {


    private MyDatabase MyDatabase;
    public ListView listview;
    SQLiteDatabase mydb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fehrest);

    MyDatabase = new MyDatabase(this);
    mydb = MyDatabase.getReadableDatabase();
    Cursor c = mydb.rawQuery("SELECT [main].[tb_book].[ID],[main].[tb_book].[nam],[main].[tb_book].[matn],[main].[tb_book].[targ],[main].[tb_book].[fav],[main].[tb_book].[khande] FROM [main].[tb_book]", null);
    int ID[] = new int[c.getCount()];
    String nam[] = new String[c.getCount()];
    String matn[] = new String[c.getCount()];
    int fav[] = new int[c.getCount()];
    int khande[] = new int[c.getCount()];
    int targ[] = new int[c.getCount()];
    int i = 0;
    if(c.moveToFirst()) {
    do {
    ID[i] = c.getInt(0);
    nam[i] = c.getString(1);
    matn[i] = c.getString(2);
    fav[i] = c.getInt(3);
    khande[i] = c.getInt(4);
    targ[i] = c.getInt(5);
    i++;
    } while (c.moveToNext());
    c.close();
    mydb.close();
    }
    listview = (ListView) findViewById(R.id.listView1);
    MyAdapter adapter = new MyAdapter(this, nam, matn, fav, khande, targ, ID);
    listview.setAdapter(adapter);
    }




    }



  38. #238

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    لطفا کلاس آداپترتون رو بذارید، این کد اکتیویتی تون هست

  39. #239
    کاربر دائمی آواتار mojniknam
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    268

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper

    package ir.niknam.daghdagheha;


    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.database.sqlite.SQLiteDatabase;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.Toast;
    import android.widget.CompoundButton.OnCheckedChangeListe ner;
    import android.widget.TextView;


    @SuppressLint("ShowToast")
    public class MyAdapter extends ArrayAdapter<String>{

    private final Activity context;
    String nam[];
    String matn[];
    int fav[];
    int khande[];
    int targ[];
    int ID[];

    public MyAdapter(Activity context,String nam[], String matn[], int fav[], int khande[], int targ[], int ID[]) {
    super(context, R.layout.item, nam);
    this.context = context;
    this.nam = nam;
    this.matn = matn;
    this.fav = fav;
    this.khande = khande;
    this.targ = targ;
    this.ID = ID;
    }


    @Override
    public boolean isEnabled(int position) {
    return true;
    }


    @SuppressLint({ "ViewHolder", "InflateParams" })
    @Override
    public View getView(final int position, View view, ViewGroup parent) {

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.item, null, true);
    TextView txtName = (TextView) rowView.findViewById(R.id.txt_name);
    CheckBox favotite = (CheckBox) rowView.findViewById(R.id.favorite_check);
    txtName.setText(nam[position]);
    if(fav[position]==0) {
    favotite.setChecked(false);
    } else if (fav[position]==1) {
    favotite.setChecked(true);
    }

    favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @SuppressLint("ShowToast")
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    MyDatabase MyDatabase = new MyDatabase(context);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    if(fav[position] == 1) {
    fav[position] = 0;
    Toast.makeText(getContext(), "fav=0 / favDB:"+fav[position], 1000).show();
    } else {
    fav[position] = 1;
    Toast.makeText(getContext(), "fav=1 / favDB:"+fav[position], 1000).show();
    }
    mydb.execSQL("update [main].[tb_book] set fav = "+fav[position]+" where ID = " + ID[position]);
    Toast.makeText(getContext(), "favSQL / favDB:"+fav[position], 1000).show();
    mydb.close();
    }
    });

    return rowView;
    } }






    آخرین ویرایش به وسیله mojniknam : سه شنبه 01 مهر 1393 در 12:13 عصر

  40. #240

    نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper



    @SuppressLint({ "ViewHolder", "InflateParams" })
    @Override
    public View getView(final int position, View view, ViewGroup parent) {

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.item, null, true);
    TextView txtName = (TextView) rowView.findViewById(R.id.txt_name);
    CheckBox favotite = (CheckBox) rowView.findViewById(R.id.favorite_check);
    txtName.setText(nam[position]);
    if(fav[position]==0) {
    favotite.setChecked(false);
    } else if (fav[position]==1) {
    favotite.setChecked(true);
    }

    favotite.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @SuppressLint("ShowToast")
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    MyDatabase MyDatabase = new MyDatabase(context);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    if(isChecked) {
    fav[position] = 0;
    Toast.makeText(getContext(), "fav=0 / favDB:"+fav[position], 1000).show();
    } else {
    fav[position] = 1;
    Toast.makeText(getContext(), "fav=1 / favDB:"+fav[position], 1000).show();
    }
    mydb.execSQL("update [main].[tb_book] set fav = "+fav[position]+" where ID = " + ID[position]);
    Toast.makeText(getContext(), "favSQL / favDB:"+fav[position], 1000).show();
    mydb.close();
    }
    });

    return rowView;
    } }



    با شرط isChecked این کار رو انجام بدید ببینید نتیجه چی میشه
    اگر مشکل حل نشد لطفا قشنگ با جزئیات توضیح بدید که چه اتفاقی میفته

صفحه 6 از 12 اولاول ... 45678 ... آخرآخر

تاپیک های مشابه

  1. آموزش کار با دیتابیس در C#‎‎
    نوشته شده توسط mohammadsalehi1385 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: چهارشنبه 09 دی 1394, 14:35 عصر
  2. آموزش: آموزش نصب qt در ویندوز به زبان ساده
    نوشته شده توسط chikar در بخش برنامه نویسی در محیط QT و هم خانواده هایش
    پاسخ: 0
    آخرین پست: دوشنبه 25 آذر 1392, 23:26 عصر
  3. آموزش مقدماتی تا پیشرفته PHP با زبان ساده
    نوشته شده توسط ehsannasri251 در بخش PHP
    پاسخ: 8
    آخرین پست: یک شنبه 03 آذر 1392, 10:55 صبح
  4. سوال: مشکل در کار با دیتابیس sqlite در سیستم دیگر
    نوشته شده توسط kingtak در بخش C#‎‎
    پاسخ: 9
    آخرین پست: دوشنبه 30 بهمن 1391, 13:29 عصر
  5. سوال: درخواست آموزش کامل کار با دیتابیس در vb.net
    نوشته شده توسط maminb در بخش VB.NET
    پاسخ: 2
    آخرین پست: پنج شنبه 17 دی 1388, 20:48 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •