当前位置:首页 > 数据库 > SQlite

android-从SQLite返回int结果

所以我想找到最大ID并通过添加1返回它.

以下是我在SQLhelper中的代码.它看起来太错了,因为它的公共空白出现了,但是我返回了CR.我有点困惑,因为使用游标读取记录,但是我只希望使用SQL查询返回整数的结果.

 public int getID( String name){
    String idquery="SELECT IFNULL(MAX(id),0)+1 FROM "+TableInfo.TABLE_NAME+ " WHERE appliance="+name;
    SQLiteDatabase SQ=this.getReadableDatabase();
    Cursor CR=SQ.rawQuery(idquery,null);
    return CR;
}

这就是我从其他活动中称呼它的方式

int no_id=DB.getID(name);

有人请帮助我.谢谢.

解决方法:

您必须喜欢:

public int getID( String name){

    String idquery="SELECT IFNULL(MAX(id),0)+1 FROM "+TableInfo.TABLE_NAME+ " WHERE appliance="+name;

    SQLiteDatabase SQ=this.getReadableDatabase();
    Cursor CR=SQ.rawQuery(idquery,null);


     int id = -1;

     if (CR != null && CR.getCount() > 0) {
         CR.moveToFirst();
         id = CR.getInt(c.getColumnIndex(YOUR_COLUMN_NAME));
         CR.close();
     }
     return id;
}

编辑:

将查询IFNULL(MAX(id),0)1中的列alias更改为IFNULL(MAX(id),0)1,如maxcount,然后可以在从游标中获取值时给它:

id = CR.getInt(c.getColumnIndex("maxcount"));

它将根据需要返回Integer.

希望对您有帮助.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!