在Android中使用WHERE子句SQLite数据库?
这是我的代码:在Android中使用WHERE子句SQLite数据库?,android,sqlite,Android,Sqlite,这是我的代码: public int getIdMotChuDe(String tenChuDe) { int IDChuDe = 0; try { Cursor c = null; c = database.rawQuery( "SELECT ChuDeID FROM DanhSachChuDe WHERE Te
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;
}
我试图从DanhSachChuDe表中获取ChuDeID,条件在WHERE子句中。但是我不知道为什么这个函数总是返回0。
请帮帮我。谢谢抱歉,因为我的英语不好。这可能是因为正在引发异常。您正在使用的代码没有正确地检查光标的状态-它试图在检查对象是否为空之前移动到第一个
您的代码还假定始终返回结果。这是不好的做法,应该避免。更安全、更常见的解决方案如下:
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());
}
}
在使用数据库的rawQuery之前,您是否在其他地方关闭了数据库?请检查LogCatDebug方法的内容,因为您已将其初始化为0,所以它将返回0。检查列名并确认数据库中有该列的值HI Kesh。一切都是正确的。但我不知道为什么它不起作用。rawQuery从不返回null。hello Ed。感谢rep。我正在尝试更改我的函数,请遵循您的代码。但它不起作用。您是否检查了日志以查看是否引发了异常?