如何检查sqlite android中是否存在列的值?

时间:2015-04-16 06:52:10

标签: android sqlite

这是我的代码:

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

有人可以帮我吗? 谢谢,抱歉,因为我的英文...

1 个答案:

答案 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;