Android:访问数据库

发布于 2024-11-04 09:21:23 字数 657 浏览 0 评论 0原文

我有以下代码:

DbAdapter dbAdapter = new DbAdapter(this);
dbAdapter.open();
ArrayList<String> queryResultList = new ArrayList<String>();
Cursor cur = dbAdapter.db.query("mytable", columns, where, null, groupBy, null, null);      
cur.moveToFirst();
while (cur.isAfterLast() == false) 
{
        queryResultList.add(cur.getString(0));
    cur.moveToNext();
}
cur.close();

dbAdapter.close();

该代码在以前从未运行过的设备上运行,即擦除的模拟器以及三星 Galaxy S 设备,其中该应用程序在第一次试用后被删除。这意味着我正在读取的数据库首先在设备上创建。它是一个自定义数据库。

在 2.2 上它运行得非常好,在 2.1-update1(API 级别 7)上它不会,isAfterLast() 总是 true,但它从 API 级别 1 开始就存在。有人有想法吗?或者我能做些什么来弄清楚?

谢谢,A.

I have the following code:

DbAdapter dbAdapter = new DbAdapter(this);
dbAdapter.open();
ArrayList<String> queryResultList = new ArrayList<String>();
Cursor cur = dbAdapter.db.query("mytable", columns, where, null, groupBy, null, null);      
cur.moveToFirst();
while (cur.isAfterLast() == false) 
{
        queryResultList.add(cur.getString(0));
    cur.moveToNext();
}
cur.close();

dbAdapter.close();

This code runs on a device where it never run before, i.e. a wiped emulator as well as a Samsung Galaxy S device where the app was removed after the first trial. That means the database I am reading is being created first on the device. It is a custom database.

On 2.2 it runs perfectly fine, on 2.1-update1 (API Level 7) it wont, the isAfterLast() is always true, but it is there since API Level 1. Any one an idea? Or an idea what I can do to figure out?

Thanks, A.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若无相欠,怎会相见 2024-11-11 09:21:23

嗯,为什么不使用:

Cursor cur = ...;
while (cur.moveToNext()) {
  queryResultList.add(cur.getString(0));
}
cur.close();

Hmm, why not use:

Cursor cur = ...;
while (cur.moveToNext()) {
  queryResultList.add(cur.getString(0));
}
cur.close();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文