gpt4 book ai didi

sqlite - 在黑莓中切换类时丢失数据

转载 作者:行者123 更新时间:2023-12-03 19:05:01 24 4
gpt4 key购买 nike

我已将一个数据库合并到我的黑莓应用程序中。当我启动应用程序时,数据库构建,并将值插入数据库。但是,当我更改类(class)时,即使用这个

        HelloBlackBerryScreen bbScreen = new HelloBlackBerryScreen();
UiApplication.getUiApplication().pushScreen(bbScreen);
this.invalidate();

当我重新加载上一个类(class)时,我得到了这个:
 [0.0] FileIO:fileinfo start 5e2
[0.0] FileIO:info by name complete 5e2
[0.0] FileIO:fileinfo start 5e3
[0.0] FileIO:info by name complete 5e3
[0.0] FileIO:open start 5e4
[0.0] FileIO:open complete 5e4
[0.0] FileSystem:bad open status 12
[0.0] File system error (12)read error here
[0.0] No stack trace

当应用程序最初启动时,它读取数据库正常,并且在相关区域中加载了某些值,然后我切换到另一个类,它也可以访问数据库,然后切换回第一个类,我得到那个错误.当我进入下一个类时,我没有正确关闭数据库吗?

这是我用来获取数据库值的代码:
public void getValues(){
try {
URI uri = URI.create("file:///SDCard/Databases/" + "database2.db");
sqliteDB = DatabaseFactory.open(uri);
Statement st = sqliteDB.createStatement("SELECT Signauto,SaveP FROM options");
st.prepare();
Cursor c = st.getCursor();
Row r;
int i = 0;
while(c.next())
{
r = c.getRow();
i++;
System.out.println(r.getString(0) + "HERE");
System.out.println(r.getString(1) + "HERE");
if(r.getString(0).equals("true")){
tickBoxes[1] = true;
//signAuto();

}
else{
tickBoxes[1] = false;
}
if(r.getString(1).equals("true")){
tickBoxes[0] = true;
setUserPass();
}
else{
tickBoxes[0] = false;
}

}

if (i==0)
{
System.out.println("No data in the options table.");
}
st.close();
sqliteDB.close();
}

catch ( Exception e ) {
System.out.println( e.getMessage() + "read error here");
e.printStackTrace();
}
}

最佳答案

有几件事要尝试。

将 close 语句移动到它们自己的 catch block 中,这样一个异常就不会阻止另一个关闭。

    } finally {
try {
if (st!=null) st.close();
} catch (DatabaseException e) {
System.out.println( e.getMessage() + "read error here");
}
try {
if (sqliteDB!=null) sqliteDB.close();
} catch (DatabaseIOException e) {
System.out.println( e.getMessage() + "read error here");
}
}

还要同步您访问数据库的方法,以便其中一个不会导致另一个异常。

关于sqlite - 在黑莓中切换类时丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7443472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com