打开数据库后sqlite强制关闭

时间:2011-10-27 07:13:31

标签: android database sqlite

我的数据库(显示在桌面上的信息)连接到按钮。单击它们时,表格应显示信息。数据库有效,但这是捕手:当我从测试中输入信息时,它可以工作。但是如果数据库无法加载,数据库会崩溃。这是代码:

rentD.open();
Log.d(TAG, "OPENING RENT DATABASE...");
String rentData = rentD.getData();
billAmount.setText("Total: " + nf.format(rentD.getAmountTotal()));
Log.d(TAG, "CLOSING RENT DATABASE...");
rentD.close();
Log.d(TAG, "RENT DATABASE CLOSED");
dataResults.setText(rentData);

所以每次点击RENT按钮,我都会被迫关闭。进一步观察后,我发现的问题与:

billAmount... nf.format(rentD.getAmountTotal()));

以货币格式显示金额。因此,如果我用String变量替换“rentD.getAmountTotal()”,数据库就可以正常工作。这是我从LogCat收到的错误:

10-26 23:53:40.764: DEBUG/DEBUG(14999): OPENING RENT DATABASE...
10-26 23:53:40.764: DEBUG/AndroidRuntime(14999): Shutting down VM
10-26 23:53:40.764: WARN/dalvikvm(14999): threadid=1: thread exiting with uncaught    exception (group=0x4001d5a0)

同样,问题似乎是将尚不存在的数据传递到textview中。 我的最终结果是让程序从没有数据开始,这样用户就可以进入填充表的活动。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

根据您的评论,我建议您从DecimalFormat删除getAmountTotal(),因为它没有任何用处(您没有使用format()的返回值),而是使用此代替:

public double getAmountTotal() {
    Cursor cursor = ourRDatabase.rawQuery("SELECT SUM(RENT_AMOUNT) FROM rentTable", null);
    if (cursor.moveToFirst()) {
        return cursor.getDouble(0);
    } else {
        return 0; // or another default value of your choice
    }
}