آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

استفاده از دیتابیس از قبل آماده شده در پروژه

bustanchi  12 سال پیش  12 سال پیش
+8 0

یه برنامه دارم که خارج از برنامه دیتابیس sqlite اونرو ساختم و میخوام توی برنامم و در Activity G اونو لود کنم و در قسمت های دیگه ازش استفاده کنم و بهش کوئری بزنم .

لطفا راهنمائیم کنید که دیتابیس رو کجا ( مثلا باید توی پوشه asset ) قرار بدم که روی هر گوشی که برنامه اجرا میشه دیتابیس کپی شه ؟؟

یه سرچ توی اینترنت کردم به database helper ها برخوردم , اگه کسی طریقه استفاده از اونا رو بلده آموزش بده !!!

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
Alireza.b  12 سال پیش
+2 0

  1. این فایل رو دانلود کنید
  2. اون رو در پوشه libs پروژه تون کپی کنید.
  3. یک کلاس دقیقا مثل زیر با نام MyDatabase بسازید:
     package com.example.app;
    
    import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.provider.ContactsContract.RawContacts.Data;
    
    public class MyDatabase extends SQLiteAssetHelper {
    
    	private static final int DATABASE_VERSION = 1;
    	
    	public MyDatabase(Context context,String name) {
    		super(context, name, null, DATABASE_VERSION);	
    	}
    	
    	
    	public SQLiteDatabase database() {
    		SQLiteDatabase database = null;
    		return database;
    	}
    }
  4. دیتابیستون رو که با پسوند db است تبدیل به فایل zip کنید:
  5. فایل زیپ شده رو در پوشه ای با نام databases در assets بریزید.
  6. در هر جایی از برنامه که نیاز به دیتابیس داشتید این کار رو انجام بدید:
    دقت کنید نامی که در خط سوم نوشته شده باید دقیقا همنام فایل زیپ و فایل db ی داخل فایل زیپ باشد.
    همچنین باید بدون پسوند باشد.
  7.  MyDatabase my;
     SQLiteDatabase sq;
    my = new MyDatabase(this, "database");
    sq = my.getWritableDatabase();
    Cursor cursor = sqlite.rawQuery("select * from table_name", null);
  8.  سوالی بود در خدمتم
پاسخ به سوال 
bustanchi  12 سال پیش
0 0

پوشه lib رو من توی پروژم ندارم کجا ایجاد کنم ؟

0 0
توی شاخه اصلی در کنار پوشه res و src پوشه ای با نام libs درست کنید ولی حتما هست (12 سال پیش)
0 0
پوشه lib وجود نداشت ولی در کنار سایر پوشه ها ایجادش کردم . (12 سال پیش)
پاسخ به سوال 
bustanchi  12 سال پیش
0 0

من همه ی کارایی که اولش گفتین رو انجام دادم ولی

public class TestActivity extends Activity {

public ArrayAdapter adapter;
public static SQLiteDatabase sqlite;
public MyDatabase database;
public SQLiteDatabase sql;


@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();

if (adapter != null) {
adapter.notifyDataSetChanged();
}
}


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lahje);

ListView lstContent = (ListView) findViewById(R.id.lstContent);

adapter = new AdapterNote(G.notes);
lstContent.setAdapter(adapter);

/***********************************
* create Query
*/

database = new MyDatabase(this, "database");
sql = database.getWritableDatabase();
Cursor cursor = sqlite.rawQuery("select * from table", null);

StructNote note = new StructNote();

while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("subject"));
note.title = name;
G.notes.add(note);
}
cursor.close();

/***********************************/

adapter.notifyDataSetChanged();
}
}

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

راستی بگو چجوری دیتابیسم رو که با پسوند sqlite هست به db تغییر بدم , من دستی تغییر دادم ؛ اگه با نرم افزاری باید اونو convert کرد بگو چجوری ؟

اینم عکس پوشه ها و محل دیتابیس :

0 0
پوشه lib رو به libs تغییر بده فایل دیتابیسی که داخل فولدر زیپ شده هم هست باید database باشه برای تبدیل به .db نیازی به برنامه خاصی نیست و تغییر به صورت دستی کافیه مطمئنا باید در دیتابیست جدولی با نام table باشه چون در query این نام رو صدا کردی (12 سال پیش)
پاسخ به سوال 
Reza AF  12 سال پیش
+2 0

ببینید شما نیازی نیست پوشه خاصی درست کنید، همین که دیتابیس رو بذارین تو assets کفایت میکنه. حالا اگه پوشه هم دست کنید اشکالی نداره، اما نیازی نیست دیگه اسم خاصی داشته باشه. شما فقط باید دیتابیس رو از assets به اون جایی که توی برنامه آدرس دهی کردی کپی کنی. بهترین راهنمایی، (بهتر از هر کد دیگه ای که میتونی پیدا کنی!) بخش نوزدهم - فایل سیستم از آموزشهای آقای آقاجانیه. شما همون کلاسی که ایشون تو فیلم توضیح میدن رو استفاده کن. فقط یکبار فیلم رو ببینی همه چیز دستت میاد

+5 0
درسته، پاسخ سئوال دوستمون در همین بخش کاملاً ارائه شده و نیاز به هیچ Lib یا سورس کد دیگری نیست. (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .