我想显示存储在数据库中的所有记录
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);
有效。为什么呢?
答案 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());
让我们知道您要实现的目标(我无法从您发布的代码中找到答案),也许我们可以提供更多帮助。