所以我想找到最大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.
希望对您有帮助.