一个简单的函数,只是想实现:
一个数据库有ID和SSID两列,使用query方法查询
有相同SSID的时候,返回该行对应的ID的值,没有相同SSID时,返回0.为什么一运行就报错呢,求大神解析
public int queryTB1(String ssidName){
SQLiteDatabase db = getReadableDatabase();
Cursor c = db.query(TABLE1_NAME, new String[]{SSID_NAME}, SSID_NAME+"=?", new String[]{""+ssidName}, null,null,null);
if(c.moveToNext()) {
return Integer.parseInt(c.getString(c.getColumnIndex(IdNum)));//Integer.parseInt(c.getString(c.getColumnIndex(IdNum)));
}
else {
return 0;
}
}
Logcat报错为:11-12 00:38:06.760: E/CursorWindow(7433): Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 1 columns.
求解答解答解答
检查一下数据库表吧,我以前也遇到过这种问题,就是列与列之间对不上,可能少了哪一个,比如有姓名、年龄、性别三列,结果你漏掉了年龄,但却在代码里getColumnIndex()这一项了,就会出现这样的错误,经验之谈,说的够详细了吧。
if里面条件改成movetofirst
最后别忘了把cursor关掉