Android: . lang.日志含义IllegalStateException: get field slot fr



我正在制作一个android数据库应用程序,当我使用光标从数据库获取值时它给出了以下异常:

java.lang.IllegalStateException: get field slot from row 0 col -1 failed

我使用以下代码进行抓取:

 public Cursor fetchChildren(String KEY_){
           Cursor c = db.rawQuery("SELECT children FROM " + DATABASE_TABLE_NAVIGATION
                   + " WHERE key_ = ?", new String[] {KEY_});
               return c;
           }

     try{   
     for(int k=0;k<n;k++){
       db.open();
     System.out.println("children are");
      Cursor cursor=db.fetchChildren(keys_a);
      if (cursor.moveToFirst()) // data?
            {
        System.out.println( cursor.getString(9)); 
     }
    }
 db.close();
    }
   catch(Exception e)
  {
  System.out.println(e);
      }

System.out.println( cursor.getString(0))代替System.out.println( cursor.getString(9));

或者使用System.out.println(cursor.getString(cursor.getColumnIndex("children"));

问题在你的逻辑:

您正在从数据库中获取单个列。所以游标只有一列(子)。您知道列索引从0开始(第一列为0,第二列为1…),您必须在getString()中传递0。另一种方法是,在游标中搜索列索引并将其传递给getString()。作为getColumnIndex(java.lang.String)计算游标中列名的索引,并在getString(int)中使用它。

相关内容

  • 没有找到相关文章

最新更新