这是我的代码:
public int getIdMotChuDe(String tenChuDe) {
int IDChuDe = 0;
try
{
Cursor c = null;
c = database.rawQuery(
"SELECT ChuDeID FROM DanhSachChuDe WHERE TenChuDe = ?"
, new String[] {tenChuDe});
c.moveToFirst();
IDChuDe = c.getInt(c.getColumnIndex("ChuDeID"));
c.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return IDChuDe;
}
我正试图从ChuDeID
表中获取DanhSachChuDe
条件和WHERE子句中的条件。但我不知道为什么这个函数总是返回0
。
请帮帮我。谢谢!抱歉,因为我的英文。
答案 0 :(得分:0)
这可能是因为正在抛出Exception
。您使用的代码未正确检查Cursor
的状态 - 在检查之前它会尝试moveToFirst()
查看对象是否不是null
。
您的代码还假定结果始终返回。这是不好的做法,应该避免。一个更安全,更常见的解决方案如下:
if (cursor != null) {
// If the cursor has results, move the cursor to first row
if (cursor.moveToFirst()) {
do {
// YOUR METHODS HERE
// then move to next row
} while (cursor.moveToNext());
}
}