private static final String Memo_ID = "_ID";
这是我的创建表代码,没有问题
private static final String MemoDB_CREATE = "create table Memo (_ID integer primary key autoincrement, MemoName text, MemoPW text, MainType text, SecType text, MainID text, SecID text)";
db.execSQL(MemoDB_CREATE);
这是查询代码。因为getInt方法
,我有力量关闭openDB();
String[] col = new String[] {Memo_ID};
Cursor c = db.query(Memo_Table, col, null, null, null, null, null);
int[] result = new int[c.getCount()-1];
if(c.moveToFirst()){
for (int i = 0; i < c.getCount(); i++){
result[i] = c.getInt(c.getColumnIndex(Memo_ID));
c.moveToNext();
}//end of for
}
c.close();
db.close();
我想要id列中的所有id,为什么我将null放入查询方法的第三个参数
答案 0 :(得分:1)
变化:
int[] result = new int[c.getCount()-1];
要:
int[] result = new int[c.getCount()];`
答案 1 :(得分:0)
从logcat中,您可能找不到列的问题。肯定有Memo_ID
列吗?
答案 2 :(得分:0)
从
中删除-1int[] result = new int[c.getCount()-1];
或将其添加到
for (int i = 0; i < c.getCount(); i++){
在c.getCount()之后:
for (int i = 0; i < c.getCount() - 1; i++){
我不知道你的意图是什么,所以不能告诉你哪一个是最好的,但我怀疑你需要从数组声明中删除-1。如果没有,请在查询返回零结果时注意负大小的数组异常! c.getCount() - 1将导致-1,并且您不能拥有大小为-1的数组。
希望这有帮助。