0

几个小时以来,我一直在努力解决这个遗憾的问题。我在我的应用程序中使用了很多其他的光标方法,这些方法很有吸引力,但这个方法确实很难解决。

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。请帮忙!!

4

3 回答 3

1

试试这个(编辑)!!:

     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;
         }
     }
于 2013-10-10T08:57:48.130 回答
0

尝试检查:

if((cg!= null) && (cg.getCount() > 0)){
  cg.moveToFirst();
  //DO YOUR STUFF
}
于 2013-10-10T08:54:23.393 回答
0

使用以下代码,

cursor.moveToFirst();
if(cursor.isAfterLast() == false) {

    // Your logic goes here
}

此外,您可以确定表中有数据,使用断点确保查询正确,查询完成后查看游标对象是否正确。

于 2013-10-10T08:58:18.490 回答