这是我的代码:
public boolean checkIDTraLoiBangID(int Id)
{
boolean check = false;
String query = "select IDTraLoi from BangCauHoi where ID=?";
Cursor c = database.rawQuery(query, new String[] { "" + Id });
if (c != null && c.moveToFirst())
{
check = true;
}
c.close();
return check;
}
我试图检查IDTraLoi
的值是否存在或不遵循where
子句。但是,即使在IDTraLoi
列中没有任何值,此函数仍会返回true
。
有人可以帮我吗? 谢谢,抱歉,因为我的英文...
答案 0 :(得分:-1)
该代码只检查行是否存在。
要检查列中的值,您实际上必须读取值:
String query = "select IDTraLoi from BangCauHoi where ID=?";
Cursor c = database.rawQuery(query, new String[] { "" + Id });
if (c.moveToFirst()) {
check = !c.isNull(0);
}
使用helper function使代码更简单:
String idTraLoi = DatabaseUtils.stringForQuery(database,
"select IDTraLoi from BangCauHoi where ID = " + Id, null);
check = idTraLoi != null;