显示存储在SQlite数据库中的所有记录

时间:2012-05-13 13:45:22

标签: android sqlite

我想显示存储在数据库中的所有记录

c = db.DBhelper.getChamp1(c.getCount);
//startManagingCursor(c);
int j = 0;
stateNameArray = new String[c.getCount()];
c.moveToFirst();
while(!c.isAfterLast()) {
  stateNameArray[j] = c.getString(0);
  j++;
  Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j));
   c.moveToNext();
}
//String resultat = ;
Log.i("DEBUG_SQL","" + c.getColumnIndex("article"));

我写c.getCount时出错 - 为什么?当我写一个像1或2或3这样的数字时......有效。

如果我写

c = db.rawQuery("SELECT * FROM loan", null); 

我收到错误,但如果我写了

db.rawQuery("SELECT * FROM loan WHERE _id=1", null); 

有效。为什么呢?

2 个答案:

答案 0 :(得分:0)

至少,我发现这个日志语句存在问题,其中c.getString(j)没有意义。当j变大时,它可能会触发错误。

 Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j));

您打算使用语句c.getString(j)访问哪些数据?

关于getCount错误。我认为以下错误是一个错字。但这是与getCount相关的错误所在的位置吗?

c = db.DBhelper.getChamp1(c.getCount);

但我不应该假设 - 你永远不会知道。它应该读取(为方法调用添加括号)。

c = db.DBhelper.getChamp1(c.getCount());

正如@Barak所说,这句话发生了什么?

答案 1 :(得分:0)

要回答有关您的getCount isuue的问题,您会收到错误:

c = db.DBhelper.getChamp1(c.getCount);

你在尝试之前尝试获取光标的数量(并且你错过了())。

这样可以工作,因为在拉下一个光标之前你有一个光标可以计算:

c = db.getSomeCursor;
c1 = db.DBhelper.getChamp1(c.getCount());

让我们知道您要实现的目标(我无法从您发布的代码中找到答案),也许我们可以提供更多帮助。