在Android中使用WHERE Clause SQLite数据库?

时间:2015-04-02 22:39:35

标签: android sqlite

这是我的代码:

    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。 请帮帮我。谢谢!抱歉,因为我的英文。

1 个答案:

答案 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());
    }
}