2

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

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); 

这样可行。为什么?

4

2 回答 2

0

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

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

您正在尝试在拥有光标之前获取光标的计数(并且您丢失了())。

这会起作用,因为您在拉下一个光标之前要计算光标:

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

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

于 2012-05-13T14:17:04.720 回答
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 所提到的,这个声明是怎么回事?

于 2012-05-13T13:57:35.873 回答