getInt不起作用

时间:2015-01-23 09:05:29

标签: java android sqlite

我试图从我的sqlite数据库中获取一个整数,但是getInt()一直在崩溃。我已经能够使用getString()而没有问题。我无法弄清楚我做错了什么。

    public int[] getDayActivities(String date){
   SQLiteDatabase db = this.getReadableDatabase();
   int[] chosen = new int[4];

   Cursor res =  db.rawQuery("select * from diary",null);
       if(res != null)
       {
           res.moveToFirst();
           chosen[0] = res.getInt(res.getColumnIndex(DIARY_COLUMN_N1));


       }
    return chosen;}

3 个答案:

答案 0 :(得分:1)

除非您有绝对需要来检索所有列,否则您不应该这样做。您应该这样做的用例很少(例如DB转储程序)。

所以我会重写查询以获取您感兴趣的列,然后使用:

res.getInt(0);

而且,如果仍然有同样的问题,您也可以使用res.getType(0)确认 FIELD_TYPE_INTEGER ,因为你的论点似乎是整数列可能不正确。即使类型整数,其中的NULL值也会为您提供FIELD_TYPE_NULL而不是FIELD_TYPE_INTEGER

答案 1 :(得分:0)

匹配代码的数据类型和db列。您的列似乎是varchar,并且您尝试将其作为int

答案 2 :(得分:-1)

施放退货声明......

(Integer)res.getInt(res.getColumnIndex(DIARY_COLUMN_N1));
相关问题