我一直在努力解决这个遗憾问题。我在我的应用程序中使用了很多其他游标方法,这些方法作为一个魅力,但这个方法真的很难解决。
public int getCategoryCode(String category){
int d=0;
Cursor cg=database.query("categoryTable", null, "category_name='"+category+"'", null, null, null, null);
cg.moveToFirst();
Log.d("success", String.valueOf(cg.getColumnIndex("_id")));
Log.d("success", String.valueOf(cg.getCount()));
cg.getInt(cg.getColumnIndex("_id"));
return d;
当我尝试检索“_id”列中保存的“整数”时,程序返回异常。我已检查“id”列中是否存在结果,因为cg.getColumnIndex()在logcat中返回0。请帮忙!!
答案 0 :(得分:1)
试试这个(EDITED)!!:
public int getCategoryCode(String category){
int d=0;
Cursor cg= database.rawQuery("SELECT _id FROM categoryTable WHERE category_name = '"+category+"' ",null);
if(cg.moveToFirst()){
if(!mCursorActual.isNull(cg.getColumnIndex("_id"))){
d = cg.getInt(cg.getColumnIndex("_id"));
} else {
d = 0;
}
cg.close();
return d;
}
}
答案 1 :(得分:0)
尝试检查:
if((cg!= null) && (cg.getCount() > 0)){
cg.moveToFirst();
//DO YOUR STUFF
}
答案 2 :(得分:0)
使用以下代码
cursor.moveToFirst();
if(cursor.isAfterLast() == false) {
// Your logic goes here
}
此外,您可以确定表中有数据,使用断点确保查询正确,查看查询完成后是否有光标对象。