صفحه 3 از 12 اولاول 12345 ... آخرآخر
نمایش نتایج 81 تا 120 از 457

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

  1. #81
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    319

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

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

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

    باید چیکار کنم؟

  2. #82

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

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

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

  3. #83
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    319

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

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

    حالا میخوام همون اطلاعات از طریقsqlitebrowser ببینم

    الان کلاسی که گفتین گذاشتم این کدها قرار دادم
    SQLiteDatabase mydb;		MyDataBase = new MyDatabase(this);
    mydb = MyDataBase.getWritableDatabase();



    mydb.execSQL("insert into ramz (name,pass) values ('3','3' ) ");

  4. #84

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

    آها شما میخواین بعد از انجام تغییرات توی برنامه دیتابیس رو ببینید

    برای این کار باید برید به همون DDMS و پوشه دیتا و باز دیتا و بعد پوشه برنامه تون

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

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

  5. #85

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

    سلام استاد.
    چطور میتونم اطلاعات رو از دیتابیس با do و while بگیرم؟
    میخوام اطلاعات رو بریزیم توی یک arrayAdapter بعد به یک لیست ویو لینکش کنم.
    میشه راهنمایی کنید ؟

  6. #86

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

    نقل قول نوشته شده توسط davoodi مشاهده تاپیک
    سلام استاد.
    چطور میتونم اطلاعات رو از دیتابیس با do و while بگیرم؟
    میخوام اطلاعات رو بریزیم توی یک arrayAdapter بعد به یک لیست ویو لینکش کنم.
    میشه راهنمایی کنید ؟
    سلام

    بابا به خدا من دانشجوام انقد نگو استاد

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

    همچنین این نمونه برنامه که گذاشتم میتونه کمکتون کنه توی این کار

    باز هم من سعی میکنم یک پروژه کامل واسه کار با دیتابیس تا آخر این هفته بذارم

  7. #87

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

    poorman جان تو پروژه افزودن به علاقه مندی ها یه اشکال هست که نتونستم برطرف کنم
    اگر داده ها زیاد باشه و اولیین ستاره را لمس کنی و روشن بشه مقدار برابر با yes میشه اما اگه یه اسکرول به پایین کنی و دوباره بالا بیای ستاره خود به خود خاموش میشه (اما مقدار هنوز yes هست)

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


  8. #88

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

    همونجا که داده ها رو توی دیتابیس آپدیت میکنیم ، آرایه رو هم تغییر بده

    یعنی :

    likes[position] = "yes";

  9. #89

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

    اون مشکلی که در بالا گفتم خود تو پروژه شما که از arrayadapter اکستندز شده با کدی که در بالا گذاشتید برطرف میشه.
    ولی تو کلاسی که از CursorAdapter گرفته شده اینطور نیست .. منم هر کاریش کردم نتونستم اینو درست کنم
    کد کلاس را در زیر قرار میدم
    فکر کنم باید me را مانند likes[position] مساوی yes یا no قرار بدم که باز هم نمیشه

    public class MyAdapter extends CursorAdapter {

    Context b;
    LayoutInflater inflater;
    @SuppressWarnings("deprecation")
    public MyAdapter(Context context, Cursor c) {
    super(context, c);
    inflater = LayoutInflater.from(context);
    b= (Context) context;
    }

    @SuppressWarnings("unused")
    @Override
    public void bindView(View view, Context context, final Cursor cursor) {
    // TODO Auto-generated method stub

    TextView tv1 = (TextView)view.findViewById(R.id.txt_name);
    TextView tv2 = (TextView)view.findViewById(R.id.txt_numer);

    tv1.setText(cursor.getString(2));
    tv2.setText(cursor.getString(3));

    final int pos = cursor.getPosition();

    final Button favorite_check= (Button)view.findViewById(R.id.favorite_check);
    final CheckBox repeatChkBx = (CheckBox)view.findViewById(R.id.favorite_check);

    String me = cursor.getString(cursor.getColumnIndex("like"));

    if (me.equals("yes")) {
    repeatChkBx.setChecked(true);
    } else {
    repeatChkBx.setChecked(false);
    }

    repeatChkBx.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view) {
    MyDatabase MyDatabase = new MyDatabase(b);
    SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
    cursor.moveToPosition(pos);

    if (repeatChkBx.isChecked()) {
    mydb.execSQL("update list set like = 'yes' where id = " + cursor.getString(1));

    }else{
    mydb.execSQL("update list set like = 'no' where id = " + cursor.getString(1));

    }
    }
    });

    }

    protected Context getActivity() {
    // TODO Auto-generated method stub
    return null;
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
    return inflater.inflate(R.layout.item, parent, false);
    }
    }

  10. #90

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

    حامد جان چیزی که من پیدا کردم اینه که نمیشه اطلاعات cursor رو مستقیما تغییر داد

    شما باید بعد از اینکه دیتابیس رو آپدیت کردی cursor رو requery() کنی ( دیگه تاثیرش روی سرعت رو نمیدونم )

    ولی حالا چه اصراری که از CursorAdapter استفاده کنی ؟ مگه آرایه چه مشکلی داره ؟ دست آدم بازتره برای کار با لیست ویو

  11. #91

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

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

    شاید یه تاپیک زدم ببینم بچه ها چی میگن

  12. #92

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

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

    و به نظرم راه جالبی اومد برای افزایش سرعت

    یک راه حل به ذهنم رسید، بیا علاوه بر cursor که میفرستی، آرایه likes رو هم بفرست، اینطوری هم سرعت کم نمیشه هم کار درست میشه

  13. #93

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

    یعنی چطوری این کارو بکنیم؟

  14. #94

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

    کاری نداره که دیگه

    توی آداپتر مقادیر ورودی رو علاوه بر cursor یک آرایه هم بگیر ( که همون آرایه لایک هست و قبلا باید پر بشه )


    Context b;
    String likes[];
    LayoutInflater inflater;
    @SuppressWarnings("deprecation")
    public MyAdapter(Context context, Cursor c, String likes[]) {
    super(context, c);
    inflater = LayoutInflater.from(context);
    b= (Context) context;
    this.likes = likes;
    }


    این قسمت باید اینطوری تغییر کنه

    بعدش هم خواستی چک باکس رو مقدار بدی از cursor مقدار نده، از این آرایه مقدار بده

  15. #95
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    319

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

    الان curser مثل datatable در سی شارپ عمل میکنه؟

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

  16. #96

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

    من C#‎ کار نکردم ( VB.NET ) کار کردم، اما فک میکنم آره مثل همون دیتا تیبل باشه

    اینکه شما یک کلاس برای پاس دادن cursor بنویسید کار خاصی نداره!!! شما وقتی یک متغیر cursor پابلیک داشته باشی، از تمام اکتیویتی ها و کلاس های دیگه میتونی بهش دسترسی داشته باشی

    شما بر فرض توی اکتیویتی اول این cursor عمومی رو مقدار بدین، بعد توی اکتیویتی های دیگه اطلاعاتش رو بخونین

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

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

  17. #97
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    319

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

    بله فضای زیادی اشغال میکنه
    اما دستوری نیست که بعد استفاده از کرسر خالیش کنیم تا فضا ازاد بشه؟


    چون به نظر من جالب نیست ما در هر فرمی این تابع بنویسیم فراخونی کنیم اگر در یک کلاس باشه و یکبار نوشته بشه خیلی بهتره

    نظرتون چیه؟

  18. #98

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

    سلام استاد .
    من باید توی پروژه از join استفاده میکنم.
    فارین کی ها رو با sqlitestudio-2.1.5 در دیتابیسم ساختم.
    اما به محض اینکه از دستور inner join استفاده میکنم برنامه خطا میده.
    این هم کدهام هستن :


    Cursor row = mydb.rawQuery("SELECT table2.* FROM table1 "
    + "INNER JOIN table2 ON table1.a = table2.b", null);


    ممنونم.

  19. #99

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

    نقل قول نوشته شده توسط davoodi مشاهده تاپیک
    سلام استاد .
    من باید توی پروژه از join استفاده میکنم.
    فارین کی ها رو با sqlitestudio-2.1.5 در دیتابیسم ساختم.
    اما به محض اینکه از دستور inner join استفاده میکنم برنامه خطا میده.
    این هم کدهام هستن :


    Cursor row = mydb.rawQuery("SELECT table2.* FROM table1 "
    + "INNER JOIN table2 ON table1.a = table2.b", null);


    ممنونم.

    مشکل بخاطر رعایت نکردن فاصله ها در کوئری بود که حل شد.
    ممنون.

  20. #100

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

    نقل قول نوشته شده توسط sara_traveler مشاهده تاپیک
    بله فضای زیادی اشغال میکنه
    اما دستوری نیست که بعد استفاده از کرسر خالیش کنیم تا فضا ازاد بشه؟


    چون به نظر من جالب نیست ما در هر فرمی این تابع بنویسیم فراخونی کنیم اگر در یک کلاس باشه و یکبار نوشته بشه خیلی بهتره

    نظرتون چیه؟
    ببینید کار شما دو تا حالت داره، یکی اینکه کلا دو تا کوئری دارید و روند خواندن اطلاعات از cursor توی تمام صفحات یکسان هست

    تو این حالت حرف شما عملی میشه، شما یک تابع پابلیک میذارید و بعد از فراخوانی اطلاعات رو برمیگردونید ( دست خودتونه از چه نوع باشه )

    حالت دیگه اینه که کوئری های شما شکل یکسان نداره
    توی این حالت تنها میشه کوئری فرستاد و cursor رو دریافت کرد، که تاثیری توی خلاصه سازی نداره به نظر من !!!

  21. #101

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

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

    توی آداپتر مقادیر ورودی رو علاوه بر cursor یک آرایه هم بگیر ( که همون آرایه لایک هست و قبلا باید پر بشه )


    Context b;
    String likes[];
    LayoutInflater inflater;
    @SuppressWarnings("deprecation")
    public MyAdapter(Context context, Cursor c, String likes[]) {
    super(context, c);
    inflater = LayoutInflater.from(context);
    b= (Context) context;
    this.likes = likes;
    }


    این قسمت باید اینطوری تغییر کنه

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

  22. #102

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

    دیگه چیزی که من توی بساطم داشتم همین بود

    حالا بازم سرچ بزن اگه راه دیگه ای پیدا شد که جواب بده ما رو بی خبر نذار

  23. #103

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

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

  24. #104

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

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



    public class myDB {
    //SQLite database
    private SQLiteDatabase moDB;
    private final static String CONST_DB_PATH="/SMART-BUS";
    private final static String CONST_DB_NAME="/Database.db3";

    private String mstrCurDBPath;

    protected void onDestroy()
    {
    CloseDatabase();

    }

    public SQLiteDatabase GetDB()
    {
    return moDB;
    }

    public void CloseDatabase()
    {
    if(moDB!=null)
    {
    if (moDB.isOpen())
    {
    moDB.close();
    }

    }
    }

    public String GetDBPath()
    {
    //String strDBPath ;
    //strDBPath= android.os.Environment
    // .getExternalStorageDirectory().getAbsolutePath()
    // + CONST_DB_PATH+CONST_DB_NAME;

    //strDBPath = android.os.Environment.getExternalStorageDirectory ().getAbsolutePath()
    // + CONST_DB_PATH+CONST_DB_NAME;

    return mstrCurDBPath;
    }

    public SQLiteDatabase OpenDatabase()
    {
    String strDBPath,strRoot ;
    File oDir;
    try
    {
    moDB=null;

    strDBPath = android.os.Environment.getExternalStorageDirectory ().getAbsolutePath()
    + CONST_DB_PATH+CONST_DB_NAME;


    oDir = new File(strDBPath);
    if (oDir.exists()==false)
    {
    strDBPath="/sdcard"+CONST_DB_PATH+CONST_DB_NAME;
    oDir = new File(strDBPath);
    if (oDir.exists()==false)
    {
    strDBPath ="/flash"+CONST_DB_PATH+CONST_DB_NAME;
    oDir = new File(strDBPath);
    if (oDir.exists()==false)
    {
    strDBPath = "/mnt/sdcard" + CONST_DB_PATH+CONST_DB_NAME;
    oDir = new File(strDBPath);
    if (oDir.exists()==false)
    {
    strDBPath = "/LocalDisk" + CONST_DB_PATH+CONST_DB_NAME;
    if (oDir.exists()==false)
    {
    strDBPath = "/local" + CONST_DB_PATH+CONST_DB_NAME;
    }
    }
    }
    }


    }


    mstrCurDBPath=strDBPath;
    moDB = SQLiteDatabase.openOrCreateDatabase(strDBPath, null);

    }catch (Exception e)
    {

    }
    return moDB;
    }



  25. #105

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

    کدتون خیلی قاطی پاتیه !!! بهتر بود کدهاتون رو توی تگ جاوا بذارید تا بشه راحت خوند

    خطایی رو هم که میده بذارید شاید کمک کنه توی فهمیدن مشکلتون

  26. #106

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

    سلام ،
    کلا کلاسوفرستادم،من نمیدونم کجا باید دنبال فایل دیتابیسم بگردم یا دستی کجا بزارمش؟؟؟
    درزمان اجرا در DDMS دیتابیسمو پیدا نمیکنه در مسیر لوکال در داخل کد...
    strDBPath = "/local" + CONST_DB_PATH+CONST_DB_NAME
    مشکل سرهمین مسیره من نمیدونم این از کدوم روشی که شما گفتین استفاده کرده......



    package com.smartbus.automation.database;


    import java.io.File;


    import android.content.Context;

    import android.content.ContextWrapper;

    import android.database.Cursor;

    import android.database.sqlite.SQLiteDatabase;

    import android.widget.Toast;


     

    public class myDB {

    //SQLite database

    private SQLiteDatabase moDB;

    private final static String CONST_DB_PATH="/SMART-BUS";

    private final static String CONST_DB_NAME="/Database.db3";



    private String mstrCurDBPath;



    protected void onDestroy()

    {

    CloseDatabase();



    }



    public SQLiteDatabase GetDB()

    {

    return moDB;

    }



    public void CloseDatabase()

    {

    if(moDB!=null)

    {

    if (moDB.isOpen())

    {

    moDB.close();

    }



    }

    }



    public String GetDBPath()

    {

    //String strDBPath ;

    //strDBPath= android.os.Environment

    // .getExternalStorageDirectory().getAbsolutePath()

    // + CONST_DB_PATH+CONST_DB_NAME;



    //strDBPath = android.os.Environment.getExternalStorageDirectory ().getAbsolutePath()

    // + CONST_DB_PATH+CONST_DB_NAME;



    return mstrCurDBPath;

    }



    public SQLiteDatabase OpenDatabase()

    {

    String strDBPath,strRoot ;

    File oDir;

    try

    {

    moDB=null;



    strDBPath = android.os.Environment.getExternalStorageDirectory ().getAbsolutePath()

    + CONST_DB_PATH+CONST_DB_NAME;





    oDir = new File(strDBPath);

    if (oDir.exists()==false)

    {

    strDBPath="/sdcard"+CONST_DB_PATH+CONST_DB_NAME;

    oDir = new File(strDBPath);

    if (oDir.exists()==false)

    {

    strDBPath ="/flash"+CONST_DB_PATH+CONST_DB_NAME;

    oDir = new File(strDBPath);

    if (oDir.exists()==false)

    {

    strDBPath = "/mnt/sdcard" + CONST_DB_PATH+CONST_DB_NAME;

    oDir = new File(strDBPath);

    if (oDir.exists()==false)

    {

    strDBPath = "/LocalDisk" + CONST_DB_PATH+CONST_DB_NAME;

    if (oDir.exists()==false)

    {

    strDBPath = "/local" + CONST_DB_PATH+CONST_DB_NAME;

    }

    }

    }

    }





    }


    mstrCurDBPath=strDBPath;

    moDB = SQLiteDatabase.openOrCreateDatabase(strDBPath, null);



    }catch (Exception e)

    {



    }

    return moDB;

    }




     

    /*

    * execute SQL

    */

    public boolean ExecSQL(SQLiteDatabase DB,String strSql)

    {

    boolean blnFlag = false;

    try

    {

    DB.execSQL(strSql);

    blnFlag = true;

    }

    catch(Exception e)

    {



    }

    return blnFlag;

    }



    /*

    * Query SQL

    */

    public Cursor GetCursor(SQLiteDatabase DB,String strTableName,String[] arraystrColsName,String strWhere,

    String[] arraystrReplacementChar,String strGroupBy,String strHaving,String strOderby)

    {

    Cursor ocursor=null;

    try

    {

    ocursor = DB.query(strTableName, arraystrColsName,

    strWhere, arraystrReplacementChar, strGroupBy, strHaving, strOderby);









    }

    catch(Exception e)

    {



    }

    return ocursor;

    }



    }


    آخرین ویرایش به وسیله f.asadkhani : پنج شنبه 25 اردیبهشت 1393 در 11:55 صبح

  27. #107

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

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

    اگر دیتابیس رو پیدا نکنه خودش توی مسیر local میسازه دیتابیستون رو

    شما که میگی پیدا نمیکنه، چون دیتابیس رو قبلا نساختی یا توی اون مسیر کپی نکردی

    اگر دیتابیستون آماده ست، از لایبری SQLite Asset Helper استفاده کنید که آموزشش توی همین تاپیک هست

    اگر میخواین دیتابیس رو خودتون توی برنامه بسازید، با همین کلاس خب دیتابیس رو میسازه، اما مسیرش رو طوری تنظیم کنین که اگر آخرین شرط ( یعنی local ) هم برقرار نبود، بره توی پوشه data/data/package/database بسازه مثلا

  28. #108

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

    مرسی که بررسی کردین،من دیتابیسم آماده هس الان طبق این برنامه کجا برم بزارمش؟؟که بر نامه بتونه پیداش کنه من از این مسیرش سردرنمیارم....من یه پوشه درس کردم و اسمشو smart-bus گداشتم و داخلش دیتابیسمو کپی کردم بازم نشد......
    local و localdisk یعنی کجا؟؟
    من دقیقا درمسیری که پوشه res و src و... هسن یه پوشه درس کردم و اسمشو smart-bus گداشتم و داخلش دیتابیسمو کپی کردم. و توی یکی از اون شرطایی که میره میگرده گفتم توی اون مسر بگرده اما بازم نشد ببینید بدای دسترسی بع اون پوشه که درریشه هس اینجوری اشتباهه که بازم پیداش نمیکنه....

    if (oDir.exists()==false)

    {

    strDBPath = CONST_DB_PATH+CONST_DB_NAME;

    oDir = new File(strDBPath);


    SQLite Asset Helper که آموزش دادین رو دیدم شماخوب توضیح داده بودید اما من زیاد بااندروید و کار با دیتابیس تازه واردم نمیتونم تمام توابع این کلاسو که برای یه برنامه بزرگه با این SQLite Asset Helper دوباره بنویسم.آخه این کلاسو که بقیه ازش استفاده میکنن فقط برای اجرای دستورات sql یه تابع داره شما گفته بودین خونون و نوشتن فرق میکنه...
    آخرین ویرایش به وسیله f.asadkhani : شنبه 27 اردیبهشت 1393 در 13:44 عصر

  29. #109

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

    ببینین شما دیتابیس آماده دارید، برای دیتابیس آماده خدایی من یک هفته هرچی روش توی اینترنت پیدا کردم رو امتحان کردم، هیچی ساده تر و بی اشکال تر از لایبری SQLite Asset Helper نبود

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

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

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

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

  30. #110

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

    اوکی بازم تشکر که جواب دادین،تلاشمو میکنم ببینم چی میشه...

  31. #111
    کاربر تازه وارد آواتار antimat
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    اورمیه
    پست
    37

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

    برنامه من واسه cursor.getInt خطا میگیره چیکار کنم؟؟

  32. #112

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

    نقل قول نوشته شده توسط antimat مشاهده تاپیک
    برنامه من واسه cursor.getInt خطا میگیره چیکار کنم؟؟
    لطفا کدتون و خطایی رو که میده بذارید، من اینطوری غیب گویی که نمیتونم بکنم

    شاید اون داده ای که میخواین بگیرید از نوع int نیست یا توی ایندکس دادن دارید اشتباه میکنید

  33. #113
    کاربر دائمی آواتار Pam.goudarzi
    تاریخ عضویت
    فروردین 1393
    محل زندگی
    همدان
    پست
    214

    نقل قول: کار با دیتابیس آماده به آسانی با استفاده از لایبری 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 assethelper گیر میده، فک کنم باید کلاسش ساخته بشه، و اگه باید ساخته بشه سوپرکلسش باید چی باشه؟
    خیلی ممنون

  34. #114

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

    نقل قول نوشته شده توسط Pam.goudarzi مشاهده تاپیک
    ممنون از آموزشتون، نسبت به اون چیزایه دیگه ای که دیدم خیلی ساده تر به نظر می رسه،
    وقتی کد ها رو می نویسم به Sqlite assethelper گیر میده، فک کنم باید کلاسش ساخته بشه، و اگه باید ساخته بشه سوپرکلسش باید چی باشه؟
    خیلی ممنون
    خواهش میکنم، باید لایبری SQLite Asset Helper رو توی پوشه libs بریزید

    تا کلاس از اون لایبری extend بشه

  35. #115
    کاربر دائمی آواتار Pam.goudarzi
    تاریخ عضویت
    فروردین 1393
    محل زندگی
    همدان
    پست
    214

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

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

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


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


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

    mydb = MyDataBase.getReadableDatabase();


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

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

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

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

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


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

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

    اگر مفید واقع شد، دکمه تشکر این پایینه
    ببخشید ما تازه واردیم! اون جا که گفتین کلس رو ساختیم اسم دیتابیس رو تعریف کنم همین کلسیه که دیتابیس رو توش تعریف کردیم؟ چون که وقتی میخوام oncreate رو بزارم با ctrl+space متد نمیاد
    (Bundle saved istance)

  36. #116

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

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

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

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

  37. #117

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

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



    Button btnsearch =(Button) findViewById(R.id.btnsearchs);
    btnsearch.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    EditText searchbtn =(EditText) findViewById(R.id.searchtxt);
    String mean=DataBase.COLUMN_MEANS;
    String table=DataBase.TABLE_DIC;
    String word=DataBase.COLUMN_WORDS;
    String txtword=searchbtn.getText().toString();
    c = dbase.rawQuery("SELECT "+mean+" FROM "+ table +" WHERE "+word+" ='"+txtword+"'", null);


    البته اینم خطاهای لوگ کت


    Capture.PNG

  38. #118

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

    من الان متوجه نمیشم خطا از کجای کدتون هست، اما چیزی که مشخصه خطا از دیتابیستون نیست

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


    احتمالات دیگه رو امتحان کنید، به جای اینکه مقدار رو از تکست ویو بگیرید و اسم ستون ها و جداول رو از کلاس database بگیرید، اینا رو خودتون توی کوئری تایپ کنید ببینید درست کار میکنه؟

  39. #119

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

    با تشکر

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

  40. #120

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

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

    قبل و بعد از کوئری توی یک logCat بذارید ببینید خطا دقیقا از کوئری تون هست یا قسمت های دیگه

صفحه 3 از 12 اولاول 12345 ... آخرآخر

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

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

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

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