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

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

119323  10 سال پیش  10 سال پیش
0 0

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

0 0
لاگ کت رو بررسی کنید ! (10 سال پیش)
0 0
کدتون و خطای لاگ کتتون رو قرار بدید (10 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
119323  10 سال پیش
0 0

این کد برنامه

این از صفحه 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)

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

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

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

پاسخ به سوال 
119323  10 سال پیش
0 0

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


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