صفحه 1 از 12 12311 ... آخرآخر
نمایش نتایج 1 تا 40 از 457

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

  1. #1

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

    سلام


    این مطلب در سال ۱۳۹۲ نوشته شده، آموزش کامل‌تر و جامع‌تری رو داریم تهیه میکنیم که میتونید در آدرس‌های زیر مطالعه کنید.


    بخش اول: آشنایی با دیتابیس - ساخت جدول و وارد کردن اطلاعات به جدول

    بخش دوم: خواندن اطلاعات از جدول و استفاده از اونها


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


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


    بخش پنجم: پیاده سازی گام به گام نمونه پروژه دیتابیس پیشرفته

    بخش ششم: آموزش استفاده از دیتابیس آماده اندروید

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

    توی این پست ابتدا ساخت دستی دیتابیس و سپس کار با دیتابیس رو یاد میگیرید

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


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

    واقعیت اینه که من از همون اول نتونستم با پیچیدگی کلاس DataBaseHelper ارتباط خوبی برقرار کنم ، به همین خاطر خیلی ساده و ابتدایی میخوام کار با دیتابیس رو بدون پیچیدگی آموزش بدم
    باشد که خدا از ما راضی باشد

    برای دیتابیس چند تا پارامتر داریم ، یکی شیء دیتابیس که اینطوری تعریف میشه

    SQLiteDatabase mydb;

    بعد نام دیتابیسی که میخوایم ایجاد کنیم یا ازش استفاده کنیم

    private static String DBNAME = "PERSONS";    // THIS IS THE SQLITE DATABASE FILE NAME.


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

    private static String TABLE = "MY_TABLE";       // THIS IS THE TABLE NAME


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

    mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);


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

    ساخت جدول در دیتابیس

    خب حالا دیتابیس ما برای استفاده آماده ست ، الان نیاز به یک جدول با مشخصات مورد نظرمون برای ثبت اطلاعات داریم ( دیتابیس میتونه دارای چندین جدول باشه ، و هر جدول میتونه به ازای هر مشخصه یک ستون داشته باشه که باید نوع اون رو تعریف کنیم )
    مثلا اگر شما میخواین اطلاعات یک دانش آموز رو ذخیره کنین ، ممکنه به این ترتیب جدول رو بسازید
    ستون شماره دانش آموزی ، ستون نام ، نام خانوادگی ، معدل
    هر جدول باید یک ستون داشته باشه که مقدار اون تکراری نباشه (primary key) ، اگر همچین مشخصه ای نداشتین میتونین یک ستون به اسم ID بسازید و بذارید که خود sqlite اون رو مقدار بده

    mydb.execSQL("CREATE TABLE IF  NOT EXISTS "+ TABLE +" (ID INTEGER PRIMARY KEY, NAME TEXT, PLACE TEXT);");


    خب جدول ما درصورتی که وجود نداشته باشه ساخته میشه ( دقت کنید اول اسم ستون ، بعد نوع محتویات ستون مثلا AGE INTEGER )

    اگر کارتون با دیتابیس تموم شد حتما اون رو با کد زیر ببندید

    mydb.close();


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

    وارد کردن اطلاعات در جدول ( از طریق کد )

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

    mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
    mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES('یک دو سه','امتحان')");
    mydb.close();


    اینجا ما دو تا ستون NAME و PLACE رو مقدار دادیم ، و همونطور که دقت میکنید ID رو مقدار ندادیم تا خود Sqlite مقدار اون رو از یک هر دفعه اضافه کنه به صورت اتوماتیک ( اگر مقدار ستون primary key تکراری باشه خطا میگیرید )

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

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

    خواندن اطلاعات از دیتابیس

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

    mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
    Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE, null);


    ما تو این کد با * تمام ستون های جدول رو به ترتیب داخل cursor ریختیم
    در صورت نیاز میتونید فقط چند ستون رو انتخاب کنید تا کارتون راحت تر باشه
    و میتونید ردیف هایی رو انتخاب کنید که یک شرط خاص رو داشته باشند ( مثلا دانشجویان با معدل بالای 16 )
    اینا رو اگر نمیدونید یا برید دنبالش بگردید ، یا بپرسید براتون مثال بزنم ، چون به SQL ربط داره نه اندروید

    خب حالا اطلاعات بدست اومده توی Cursor رو میشه به این ترتیب از اول تا آخر استفاده کرد
    مثلا ما این اطلاعات رو داخل آرایه میذاریم، یا میشه اطلاعات رو توی textView نمایش داد ( این دست خود شماست )

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

    NAME = new String[allrows.getCount()];


    و ریختن اطلاعات توی آرایه :


    int i = 0;
    if(allrows.moveToFirst()){
    do{
    ID[i] = allrows.getInt(0);
    NAME[i] = allrows.getString(1);
    PLACE[i] = allrows.getString(2);
    i++;
    }
    while(allrows.moveToNext());
    }
    allrows.close();
    mydb.close();


    بعد از خوندن اطلاعات از cursor هم باید حتما اون رو مثل دیتابیس بندید

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

    خب تبریک میگم شما یاد گرفتید خیلی ساده اطلاعات رو در دیتابیس ذخیره کنید و از دیتابیس بخونید
    اگر نیاز به توضیح بود در خدمتم
    دکمه تشکر هم که اون پایین هست دیگه
    آخرین ویرایش به وسیله poorman : سه شنبه 05 اردیبهشت 1396 در 14:57 عصر

  2. #2

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

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

    https://github.com/jgilfelt/android-sqlite-asset-helper

  3. #3

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

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

  4. #4

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

    خوب اینقدر آسونه که فکر میکنم نیاز به آموزش نداشته باشه (البته در صفحه برنامه آموزش انگلیسیش هست)
    فایل jar را تو پوشه libs برنامه کپی میکنید
    بعد همانند اکتیویتی mydatabase نام تیبل و ستون ها را معرفی میکنید
    همین

    راستی من شنیدم برای آپدیت برنامه باید برنامه ورژن قبل که دیتابیس قبلی توش هست را پاک کرد و برنامه جدیدتر رانصب کرد تا دیتابیس تغییر کنه اما تو این لایبری اصلا نیاز نیست (تو مثال هاش هم مثال آپدیت دیتابیس وجود داره)

  5. #5
    کاربر دائمی آواتار abbasalim
    تاریخ عضویت
    تیر 1391
    محل زندگی
    یزد ـ‌ اردکان
    پست
    1,039

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

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

  6. #6

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

    نقل قول نوشته شده توسط abbasalim مشاهده تاپیک
    سلام
    الان روش ساده ای که شما گفتین زیاد فرقی نداره ها فقط دسترسی بهش مشکل تر میشه همین
    فرقش اینه که فهمش ساده تره
    واسه کسایی که با دیتابیس آشنایی ندارن خوبه
    حالا بعدش که آشنا شدن ، منم توصیه میکنم اصولی و مرتب از کلاس ها استفاده کنن :)

  7. #7
    کاربر دائمی آواتار jafaripur
    تاریخ عضویت
    شهریور 1385
    پست
    216

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

    من نمی دونم شماها چرا خودتون رو به مشکل میندازین !
    از کلاس SQLiteDatabase و Cursor استفاده کن و نیازی به این DBHelper ها نیست.

  8. #8

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

    اهمیت استفاده از این لایبری اینه که لازم نیست برنامه قبلی را پاک کنیم که دیتابیس جدید تاثیر داشته باشه
    خواسیتن sample های این برنامه را دانلود کنید

    آیا این روش که همه میگن همین طوره یا برای ورژن جدید دیتابیس باید برنامه قبلی را پاک کنیم؟

  9. #9

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

    آموزش کار با دیتابیس آماده 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);
    setForcedUpgrade();
    }
    }


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

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


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


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

    mydb = MyDataBase.getReadableDatabase();


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

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

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

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

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


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

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

    اگر مفید واقع شد، دکمه تشکر این پایینه
    آخرین ویرایش به وسیله poorman : جمعه 09 مرداد 1394 در 15:25 عصر

  10. #10

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

    برای update و delete همون دستورات SQL استفاده میشه
    به این صورت آپدیت میکنیم :

    mydb.execSQL("update tableName set fieldName = 'value' where _id = 2");


    با این دستور توی جدول tableName، مقدار ستون یا فیلد fieldName رو در جایی که id_ برابر 2 باشه، به value تغییر میدیم
    اگه براش شرط نذارین مقدار fieldName تمام رکوردهاتون رو آپدیت میکنه
    مثلا دستور زیر نمره همه دانشجوها رو 20 میکنه !!!

    mydb.execSQL("update student set mark=20);


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

    mydb.execSQL("delete tableName where _id > 40);

  11. #11
    کاربر دائمی آواتار mohsen22
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    ??????
    پست
    431

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

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

  12. #12

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

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

  13. #13

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

    نقل قول نوشته شده توسط hamedjj مشاهده تاپیک
    دمت گرم poorman جان که این موضوع را دنبال کردی و توضیحات کاملی برای هممون گذاشتی
    من مزیت و راحتی این لایبری را تو همین تالار در چند تا تاپیک دیگه مطرح کردم اما این طور که مشخص بود کسی زیاد علاقه به استفاده از این لایبری را نداشت و از همان روش معمول استفاده میکردند.
    واقعا دستت درد نکنه
    ..
    میگم بیکار شدی یه پروژه آموزشی درباره این لایبری و آپدیت جدید بساز و در نمونه برنامه های کوچک اما مفید قرار بده که بقیه استفاده کنند.
    یا اصلا همون sample های لایبری را با اضافه کردن چند تا کامنت فارسی در پروژه برای فهم بیشتر در تاپیک نمونه برنامه ها قرار بده
    البته اگه حال داشتی و وقت داشتی
    بازم دمت گرم
    خواهش میکنم ، دم تو گرم که انقد گفتی تا بالاخره من رفتم سراغش
    من کلا وقتی 2-3 روز دنبال یه چیزی بگردم و پیداش نکنم بعد آخرش راه حل رو که بفهمم انقد ذوق دارم که میام واسه بقیه هم آموزش میذارم

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

  14. #14

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

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

    mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
    mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES('یک دو سه','امتحان')");

    mydb.close();





    اگه بخوام به جای Value ثابت مقادیر رو از txtview بگیرم چه جوری میشه ؟

  15. #15

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

    سلام روش ویزادی موجود نیس؟
    همانند برنامه ای دات نت؟؟

  16. #16

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

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

    mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
    mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES('یک دو سه','امتحان')");

    mydb.close();





    اگه بخوام به جای Value ثابت مقادیر رو از txtview بگیرم چه جوری میشه ؟
    سلام، برای وارد کردن اطلاعات از EditText میتونید به صورت زیر عمل کنید


    String name = editTextName.getText().toString();
    String place = editTextPlace.getText().toString();
    mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES ('" + name + "', '" + place + "')");

  17. #17

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

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

  18. #18

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

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    سلام، برای وارد کردن اطلاعات از EditText میتونید به صورت زیر عمل کنید


    String name = editTextName.getText().toString();
    String place = editTextPlace.getText().toString();
    mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES ('" + name + "', '" + place + "')");
    اپدیت و دلیت رو هم اگه یه مثال کوچولو بزنید ممنون میشم. و این که چه جوری اطلاعات خونده شده رو بریزیم تویه یه لیست ویو

  19. #19

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

    سلاممن تازه دارم اندرويد ياد ميگيرم ميخوام يه برنامه اندرويدي با کد نويسي بنويسم که جزوه درس انگليسمون است,مشکلي که دارم نميدونم چه جوري بايد متن اين جزورو وارد برنامه کنم لطفا کمک کنيد.

  20. #20

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

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


    String value = editTextValue.getText().toString();
    int id = editTextID.getText();
    mydb.execSQL("update tableName set fieldName = '" + value + "' where _id = " + id);


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

  21. #21

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

    نقل قول نوشته شده توسط hamidhtc مشاهده تاپیک
    سلاممن تازه دارم اندرويد ياد ميگيرم ميخوام يه برنامه اندرويدي با کد نويسي بنويسم که جزوه درس انگليسمون است,مشکلي که دارم نميدونم چه جوري بايد متن اين جزورو وارد برنامه کنم لطفا کمک کنيد.
    شما اول یک شناخت کلی از دیتابیس SQLite پیدا کنین که چطوری اطلاعات دسته بندی میشه و میشه اونها رو خوند
    بعدش برای اینکه بعدا بتونین بهترین استفاده رو از دیتابیس کنین، برای اطلاعاتتون یک چارچوب مشخص تعیین کنین و بعدش اونا رو از طریق نرم افزار SQLite Browser وارد دیتابیس خودتون کنین
    مثلا اگه میخواین لغات رو ترجمه کنین، یک جدول به اسم dictionary بسازید و چند تا ستون id_ و word و meaning رو بسازید و اطلاعاتتون رو از طریق دستورهای SQL وارد دیتابیس کنید

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

  22. #22

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

    مشکلم حل شد
    آخرین ویرایش به وسیله keyvan_s89 : جمعه 23 اسفند 1392 در 13:14 عصر

  23. #23

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

    نقل قول نوشته شده توسط hamedjj مشاهده تاپیک
    میگم بیکار شدی یه پروژه آموزشی درباره این لایبری و آپدیت جدید بساز و در نمونه برنامه های کوچک اما مفید قرار بده که بقیه استفاده کنند.
    یا اصلا همون sample های لایبری را با اضافه کردن چند تا کامنت فارسی در پروژه برای فهم بیشتر در تاپیک نمونه برنامه ها قرار بده
    حامد جان من رفتم بحث آپدیت رو خوندم ، آپدیت توی این لایبری دو تا حالت داره
    یکی اینکه میخواین اطلاعاتی که کاربر وارد دیتابیس کرده از دست نره و برای اینکار باید یکسری مراحل رو طی کرد تا اطلاعات قبلی توی دیتابیس جدید وارد بشه
    این کار رو من امتحان نکردم ، و اطلاع زیادی هم ندارم ولی اینجا توضیح داده

    مورد بعدی اینه که شما براتون مهم نیست کاربر اطلاعات قبلیش چی بوده، یا اصلا کاربر با دیتابیس کاری نداشته و چیزی توش وارد نکرده
    که برای اینکار کافیه عدد ورژن دیتابیس رو توی کلاس MyDatabase یکی ببرید بالا و توی همون کلاس توی تابع MyDatabase بعد از متد super این کد رو بنویسید
    setForcedUpgrade();


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

    البته کاملا معلومه که فایل دیتابیس موجود در پوشه assets/databases هم باید با فایل جدید جایگزین بشه ( با همون نام قبلی )

  24. #24
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

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

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

  25. #25

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

    نقل قول نوشته شده توسط ho3ein.3ven مشاهده تاپیک
    جناب poorman واقعا ممنون خیلی بدردم خورد
    یه سوال داشتم . چطوری مشیه count رو بدست آورد ؟ چون آرایه ها باید به صورت پویا تعریف بشه دیگه.
    درسته چون باید آرایه ها رو پویا مقدار بدید می تونید از تابع getCount استفاده کنید برای Cursor
    int num = yourCursor.getCount();

  26. #26
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

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

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

  27. #27

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

    خواهش میکنم، کپی کردن منظورتون چیه ؟ فایل دیتابیس رو زیپ میکنید با همون مراحلی که گفتم بعدش فایل رو میکشید و توی پوشه assets/databases ول میکنید

    بعدش برای اینکه دیتابیس شناخته بشه باید از لایبری SQLite asset helper استفاده کنین به ترتیبی که گفته شد

  28. #28

    ترکیب دو دیتابیس SQLite با هم !!!

    سلام دوستان

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

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

    مواد مورد نیاز : SQLite Database Browser , Microsoft SQL Server

    نکته : اگه Microsoft SQL Server روی سیستمتون نصب نیست به نظر من بیخیال بشین چون حجمش 4 گیگ میشه تقریبا

    ابتدا دیتابیسی رو که میخواین به دیتابیس اصلی اضافه کنین با نرم افزار SQLite Browser باز میکنید
    بعدش از منوی file گزینه export رو انتخاب میکنید و بعد Database to SQL file
    حالا فایل رو درجای دلخواه با پسوند .sql ذخیره کنید

    بعدش برید جایی که فایل رو ذخیره کردید و اون رو با Microsoft SQL Server باز کنید
    می بینید که یک سری کوئری و دستورات SQL براتون اورد
    حالا تمام اطلاعات در اختیار شماست و میتونید با SQLite Browser دیتابیس اصلی رو باز کنید و این کوئری ها و دستورات رو اونجا کپی کنید و بعد execute کنید ( از قسمت Execute SQL )

    حتی جدول رو هم نمیخواد بسازید و دستور ساخت جدول توی همون کوئری ها وجود داره
    اطلاعات رو که وارد کردید، بعدش میتونید با ابزارهای SQLite Browser هر بلا و تغییری که خواستید سرشون در بیارید

    امیدوارم توضیحاتم کامل و مفید باشه

  29. #29
    کاربر دائمی آواتار jafaripur
    تاریخ عضویت
    شهریور 1385
    پست
    216

    نقل قول: ترکیب دو دیتابیس SQLite با هم !!!

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

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

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

    مواد مورد نیاز : SQLite Database Browser , Microsoft SQL Server

    نکته : اگه Microsoft SQL Server روی سیستمتون نصب نیست به نظر من بیخیال بشین چون حجمش 4 گیگ میشه تقریبا

    ابتدا دیتابیسی رو که میخواین به دیتابیس اصلی اضافه کنین با نرم افزار SQLite Browser باز میکنید
    بعدش از منوی file گزینه export رو انتخاب میکنید و بعد Database to SQL file
    حالا فایل رو درجای دلخواه با پسوند .sql ذخیره کنید

    بعدش برید جایی که فایل رو ذخیره کردید و اون رو با Microsoft SQL Server باز کنید
    می بینید که یک سری کوئری و دستورات SQL براتون اورد
    حالا تمام اطلاعات در اختیار شماست و میتونید با SQLite Browser دیتابیس اصلی رو باز کنید و این کوئری ها و دستورات رو اونجا کپی کنید و بعد execute کنید ( از قسمت Execute SQL )

    حتی جدول رو هم نمیخواد بسازید و دستور ساخت جدول توی همون کوئری ها وجود داره
    اطلاعات رو که وارد کردید، بعدش میتونید با ابزارهای SQLite Browser هر بلا و تغییری که خواستید سرشون در بیارید

    امیدوارم توضیحاتم کامل و مفید باشه
    چرا لقمه رو می پیچونی می زاری دهنت ؟
    تو SQLite با همچین چیزی می تونی این کار رو بکنی.
    یک کپی از Structure جدول اولی بنویس و بعد query زیر رو بزن
    INSERT INTO test1(`id`,`name`) SELECT `id`,`name` FROM test


    مثلا با Navicat می تونی کپی و پیست هم بکنی.

  30. #30

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

    الان یا من منظور رو متوجه نشدم یا شما منظور منو

    چون دو تا دیتابیس رو نمیشه همزمان توی SQLite باز کرد و مسلما نمیشه اطلاعات رو به همین راحتی با یک کوئری منتقل کرد

    الان اینکه میگی یک کپی از stucture جدول اول بگیرم یعنی چی ؟؟؟ چطوری اینکارو بکنم ؟

  31. #31
    کاربر دائمی آواتار jafaripur
    تاریخ عضویت
    شهریور 1385
    پست
    216

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

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

    چون دو تا دیتابیس رو نمیشه همزمان توی SQLite باز کرد و مسلما نمیشه اطلاعات رو به همین راحتی با یک کوئری منتقل کرد

    الان اینکه میگی یک کپی از stucture جدول اول بگیرم یعنی چی ؟؟؟ چطوری اینکارو بکنم ؟
    دو تا دیتابیس که سهل هستش، هر چند تا که بخوای می تونی باز کنی فرض کن 10 تا.
    گرفتن Strcuture هم همون گرفتن dump از table هستش یا همون export.

  32. #32

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

    سلام دوستان

    بعد از آپدیت نرم افزار به خوبی نصب میشه یعنی ارور نمیده؟؟؟ چون تو بعضی جاها گفتن استفاده از دیتابیس آماده باعث میشه تو آپدیت نرم افزار با ارور مواجه میشین...

  33. #33

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

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

    مورد اول رو که من تست کردم هیچ مشکلی پیش نمیاد، مورد دوم والا هنوز امتحان نکردم، ولی با توجه به قدرتی که لایبری SQL asset helper داره فک نمیکنم اگر همه کارها رو درست انجام بدید مشکلی پیش بیاد

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

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

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

    مورد اول رو که من تست کردم هیچ مشکلی پیش نمیاد، مورد دوم والا هنوز امتحان نکردم، ولی با توجه به قدرتی که لایبری SQL asset helper داره فک نمیکنم اگر همه کارها رو درست انجام بدید مشکلی پیش بیاد
    کافیه واسه دیتابیس نسخه تعریف کنی بعد اگه تغییراتی در اطلاعات داخلی دیتابیس داشته باشه نسخه جدید دیتابیس رو 1+قبلی کنی بعد با دستورات مثل alter table و ... مدیریت کنی
    من به اینصورت استفاده می کنم خیلی هم راحته و جواب میشه البته بایستی به دستورات SQL اشنایی خوبی داشته باشید اینطوری حتی اطلاعات قبلی هم حذف نمیشه

  35. #35

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

    من این مراحل انجام دادم فقط نمی دونم از کوئری select چجوری استفاده کنم یعنی مثلا textview برابر فیلد مورد نظر از بانک شود
    آخرین ویرایش به وسیله akbar_online : پنج شنبه 11 اردیبهشت 1393 در 13:30 عصر

  36. #36

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

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    بالاخره من دیشب تونستم تمام مشکلات مربوط به دیتابیس آماده رو حل کنم و ارتباط خوبی برقرار کنم با لایبری
    sqlite asset helper ( با تشکر از hamedjj به خاطر پافشاری روی استفاده از این لایبری )

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

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

    خب دوستانی که با اکلیپس کار میکنن این فایل jar رو دانلود کنن و توی پروژه مورد نظر در پوشه libs قرار بدن
    http://repository.sonatype.org/servi...=LATEST&&c=jar

    توی پوشه assets یک پوشه به اسم databases بسازید
    بعد دیتابیس خودتون رو zip کنید و با این فرمت ( DataBaseName.db.zip ) توی پوشه databases بذارید ( دقت کنید باید هم پسوند 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();


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

    اگر مفید واقع شد، دکمه تشکر این پایینه
    من این مراحل انجام دادم فقط نمی دونم از کوئری select چجوری استفاده کنم یعنی مثلا textview برابر فیلد مورد نظر از بانک شود

  37. #37

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

    من از لایبری sqlite asset helper استفاده میکنم که تو table خودم یه ستون به نام favorite دارم برای لیست علاقه مندی ها
    مقادیر این table همه no هستند که میخوام باید با کلیک رو دکمه افزودن به yes تبدیل شود

    برای اجرای این عمل باید چیکار کنم؟؟

  38. #38

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

    سلام.
    وقتی که از
    mydb = MyDatabase.getReadableDatabase();

    در کدهام استفاده میکنم برنامه موقع اجرا خطا میده.
    میتونید کمکم کنید؟

  39. #39

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

    من هم وقتی اجرا می کنم میگه نمیتونه دیتابیس رو بخونه....

    مشکل حل شد یادم رفت پوشه databases رو بسازم...

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

    دوستان حالا ما یکه دیتابیس داریم خوب...
    - چطوری میتونیم اطلاعات رو از دیتابیس بگیریم؟
    آخرین ویرایش به وسیله ali-star : یک شنبه 14 اردیبهشت 1393 در 05:55 صبح

  40. #40

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

    نقل قول نوشته شده توسط davoodi مشاهده تاپیک
    سلام.
    وقتی که از
    mydb = MyDatabase.getReadableDatabase();

    در کدهام استفاده میکنم برنامه موقع اجرا خطا میده.
    میتونید کمکم کنید؟
    دیتابیس را باید تو پوشه databases و سپس تو پوشه asset قرار بدی
    شما این کار را کردید؟

    کسی نیست سوال منو جواب بده؟؟؟

صفحه 1 از 12 12311 ... آخرآخر

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

  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 عصر

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

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