Android cursor.getInt
我有一个函数的问题。 我有一个函数来查找一个表的maxid,它可以工作,但是对于另一个表它不工作。 首先,我的数据库:Android cursor.getInt,android,Android,我有一个函数的问题。 我有一个函数来查找一个表的maxid,它可以工作,但是对于另一个表它不工作。 首先,我的数据库: `//MAGASIN public static final String MAGASIN_TABLE_CREATE = "CREATE TABLE "+ MAGASIN_TABLE_NAME + " ("+ MAGASIN_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT, " + MAGASI
`//MAGASIN
public static final String MAGASIN_TABLE_CREATE = "CREATE TABLE "+ MAGASIN_TABLE_NAME + " ("+
MAGASIN_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
MAGASIN_NOM + " TEXT NOT NULL, " +
MAGASIN_ADRESSE + " TEXT);";`
`
之后,我的第一个功能开始工作:
public int selectMaxNumMagasin()
{
Cursor cursor = mDb.rawQuery("select numMagasin as _id from magasin order by _id desc limit 1",null);
int max;
if (cursor == null)
{
max = 1;
return max;
}
else
{
cursor.moveToFirst();
max = cursor.getInt(0) + 1;
cursor.close();
return max;
}
}
最后是最后一个不起作用的
`
我做了一些测试,看起来是
cursor.getInt0
它卡住了
希望有人能找到解决办法,谢谢 在第二个函数中始终返回2,尝试返回max intead of 2rawQuery始终返回有效游标,或引发异常。检查null游标不是检查是否有结果的方法 相反,请检查moveToFirst的结果值以检查光标是否为非空
另外请注意,您可以完全使用SQL来完成工作,例如,从tablename中选择MAXcolumnname+1。要测试此函数,它是max而不是2:所以请尝试检查ifcursor.moveToFirst{//do something},正如@laalto post上回答的那样
public int selectMaxNumMagasin()
{
Cursor cursor = mDb.rawQuery("select numMagasin as _id from magasin order by _id desc limit 1",null);
int max;
if (cursor == null)
{
max = 1;
return max;
}
else
{
cursor.moveToFirst();
max = cursor.getInt(0) + 1;
cursor.close();
return max;
}
}
public int selectMaxNumListe()
{
Cursor cursor = mDb.rawQuery("select numListe as _id from liste order by _id desc limit 1",null);
int max;
if (cursor == null)
{
max = 1;
return max;
}
else
{
cursor.moveToFirst();
max = cursor.getInt(0);
max += 1;
cursor.close();
return max;
}
}`