بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سوال در مورد ارتباط با دیتابیس

مدیریت گفتگو
ayhan 10 سال پیش
آخرین تغییر: 10 سال پیش

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

نظرات

ابراهیم 10 سال پیش
اگر تو کد گفتید که دیتا بیس دز SD CARD ایجاد سود پرمشن مربوط به ان را هم در منیفست اضافه کرده اید؟
ayhan 10 سال پیش
کاملا قسمت منیفست رو کپی کردم دیتا بیس رو این قسمت میریزم public final String path="data/data/ir.ayhan.appLed/databases/";
ابراهیم 10 سال پیش
بیزحمت کدرا بنویس شاید بتونم کمکت کنم

پاسخ‌ها 1

ayhan 10 سال پیش

 import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class database extends SQLiteOpenHelper{
	private final Context mycontext;
	public final String path="data/data/ir.ayhan.appLed/databases/";
	public final String name="database";
	public SQLiteDatabase mydb;
	public database(Context context) {
		super(context, "database", null, 1);
		// TODO Auto-generated constructor stub
		mycontext=context;
	}



	@Override
	public void onCreate(SQLiteDatabase arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		// TODO Auto-generated method stub
		
	}
	public void open(){
		mydb=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READWRITE);
	}
	public void close(){
		mydb.close();
	}
	public void useable(){
		boolean checkdb=checkdb();
		if(checkdb){
			
		}else{
			this.getReadableDatabase();
			try{
				copydatabase();
				
			}catch(IOException e){
				
			}
		}
	}
	public boolean checkdb() {
		SQLiteDatabase db=null;
		try{
		db=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READONLY);
		}catch(SQLException e)
		{
			
		}
		return db !=null ? true:false;
	}
	
	public void copydatabase() throws IOException{

		
		OutputStream myOutput = new FileOutputStream(path+name);
		byte[] buffer = new byte[1024];
		int length;
		InputStream myInput = mycontext.getAssets().open("database");
		while ((length = myInput.read(buffer)) > 0) {
		myOutput.write(buffer,0,length);	
		}
		myInput.close();
		myOutput.flush();
		myOutput.close();
	}

نظرات

ayhan 10 سال پیش
mydb=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READWRITE); ارور این قسمت
Reza 10 سال پیش
سلام ، شاید چون فایل دیتابیس وجود نداره Crash میکنه ، از openOrCreateDatabase استفاده کنید ببینید درست میشه ؟
ayhan 10 سال پیش
دیتابیس ایجاد میشه ولی به اون دیتا بیس نگاه میکنم توش خالیه
MOJTABA 10 سال پیش
فکر کنم باید توی onCreate دیتابیس رو بسازین. اون موقع توی open ازش استفاده کنین
reza 10 سال پیش
از اکلیپس استاد استفاده میکنید ابتدا فایلتونو ایمپورت کنید به اینترنت وصل باشین در این مدت از اینترنت استفاده نکنیداحتمال داره مشکلتون حل بشه
ayhan 10 سال پیش
من برنامه های قبلیمو ایمپورت میکنن خطا میگیری کپی هم میکنم ارور خاصی میدن که مشکلی نداره

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