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.

希望对您有帮助.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能