بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
بستن دیتابیس بعد از اجرای متد checkdb
سلام
در کلاس دیتابیس وقتی می خواهیم چک کنیم که ایا دیتابیس قابل استفاده هست یا نه از همچین متدی استفاده می کنم
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e)
{
}
return db != null ? true : false;
}
مساله اینجاست که بعد از اجرای این متد دیتابیس باز می مونه چطور می تونم دیتابیس رو بعد از چک کردن ببندم؟
0
0
فکرنکنم نیاز به بسته شدن داشته باشه cursor رو فقط باید بست حالا شما از این کد استفاده کنید ()db.close بعدشم اگر قصد بازکردن یا ساختن دیتابیس رو دارید از این کد استفاده کنید openOrCreateDatabase ! (11 سال پیش)
0
0
مشکل اینجاست که اگه db بسته بشه اونوقت مقدار false رو برمی گردونه (11 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Spirit
11 سال پیش
0
0
این کد رو تست کنید (تو Notepad تغییر دادم)
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
return db != null ? true : false;
}
catch (SQLException e)
{
return false;
}
finally
{
db.close();
}
return false;
}
پاسخ به سوال
hojat_babaie
11 سال پیش
0
0
این کد رو تو برنامه که گزاشتم از return اخریش اشکال گرفت وگفت که باید حذف بشه منم کد رو تغییر دادم:
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
return db != null ? true : false;
}
catch (SQLException e)
{
return false;
} finally
{
db.close();
}
}
در صورتی که دیتابیس کپی شده باشه روی حافظه وفقط بخواد خونده بشه این کد کار می کنه-دیتابیس رو می بنده- اما اگه بخوام در اولین اجرا دیتابیس رو روی حافظه کپی کنم برنامه کرش می کنه_از db.close(); اشکال می گیره_در ضمن من از این متد دریک متد دیگه استفاده کردم_متد زیر_برای کپی دیتابیس در صورتی که کپی نشده باشه :
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
Log.i("LOG", "check tru");
} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {
}
}
}
کد های ارور برنامه:
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
