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

ایراد در خواندن دیتا بیس در اندروید

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

یک دیتابیس خارجی در نرم افزار sql expert  طراحی کردم در پروژه کپی کردم کدی رو برای خواندن دیتابیس باشه از وبسایت stackover flow  گرفت کد درست ولی وقتی میخوام پروژه run و دکمه ای که براش گذاشتم تا یه رکورد بخونه میزنم دیتابیس باز نمیشه و خطا میگیره لطفا راهنمایی کنید

نظرات

پاسخ‌ها 3

119323 10 سال پیش

این کد برنامه

این از صفحه database

 public class database extends SQLiteOpenHelper {

    public final String   path = "data/data/ com.programingandroid.bookhardware/databases/";
    public final String   Name = "dbbook";
    public SQLiteDatabase mydb;
    private final Context mycontext;


    public database(Context context) {
        super(context, "dbbook", null, 1);
        mycontext = context;
    }


    @Override
    public void onCreate(SQLiteDatabase arg0) {

    }


    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

    }


    public void useable() {
        boolean checkdb = checkdb();
        if (checkdb) {

        } else {
            this.getReadableDatabase();
            try {
                copydatabase();
            }
            catch (IOException e) {

            }
        }
    }


    public void open() {
        mydb = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
    }


    @Override
    public void close() {
        mydb.close();
    }


    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 lenght;
        InputStream myInput = mycontext.getAssets().open(Name);
        while ((lenght = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, lenght);
        }
        myInput.close();
        myOutput.flush();
        myOutput.close();
    }
 public String namayesh(int row, int field, String table) {

        android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table, null);
        Cursor.moveToPosition(row);
        String str = Cursor.getString(field);
        return str;
    }

}

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

 public class BookhardwareActivity extends Activity {

    private database db;


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

        db = new database(this);
        db.useable();
        Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                db.open();
                String str = db.namayesh(0, 1, "tamirat");
                Toast.makeText(BookhardwareActivity.this, str, Toast.LENGTH_SHORT).show();
                db.close();

            }
        });
    }
}

اینم خطایی که وقتی رو دکمه کلیک میکنم تو logcat  نشون میده

 E/AndroidRuntime(1376):     at com.programingandroid.bookhardware.database.open(database.java:56)
 E/AndroidRuntime(1376):     at                              com.programingandroid.bookhardware.BookhardwareActivity$1.onClick(BookhardwareActivity.java:28)

لطفا راهنمایی کنید

نظرات

Hossein Lamei Ramandi 10 سال پیش
کد هاتون رو با استفاده از حالت کد که تو سایت تعیبیه شده قرار بدید تا خوانا تر شن
احمد 10 سال پیش
دیتا بیس را یاز کردین قبل از استفاده؟
احمد 10 سال پیش
اگه لازمه براتون یه مثال بزارم؟
119323 10 سال پیش

کد رو تغییر دادم

نظرات

119323 10 سال پیش

کد رو تغییر دادم

نظرات


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