SQLite从DB获取值

时间:2013-11-22 07:58:52

标签: android database android-sqlite

我正试图通过以下方式从DB进行查询

public Cursor getManagementData() {

    String selectQuery = "SELECT  * FROM " + DBHelper.TABLE_STAFF + " WHERE " + DBHelper.COLUMN_DEPARTMENT + " GLOB " + "'management'";

    return db.rawQuery(selectQuery, null);

}

我尝试了同样的事情

query(DBHelper.TABLE_STAFF, new String[] {
            DBHelper.COLUMN_ID, DBHelper.COLUMN_NAME,
            DBHelper.COLUMN_LAST_NAME, DBHelper.COLUMN_POSITION,
            DBHelper.COLUMN_DEPARTMENT, DBHelper.COLUMN_PICTURE }, null,
            new String[] { "management" }, null, null, null);

但没有任何反应。

表结构非常简单:使用列staff的表department,我希望获得名为management的所有条目。

如果您无法回答,请建议在哪里找到密切的解决方案,因为在谷歌搜索后我没有找到任何关于通过条目搜索数据库的综合示例,无论是使用rawQuery还是仅查询。

提前谢谢。

我已经对Mr.Choy进行了更改建议它不会崩溃但是在我的应用列表中打开时是空的。在我运行以下查询的同时:

    public Cursor getEmployeesData() {

    return db.query(DBHelper.TABLE_STAFF, new String[] {
            DBHelper.COLUMN_ID, DBHelper.COLUMN_NAME,
            DBHelper.COLUMN_LAST_NAME, DBHelper.COLUMN_POSITION,
            DBHelper.COLUMN_DEPARTMENT, DBHelper.COLUMN_PICTURE }, null,
            null, null, null, null);

}

它显示了应有的所有数据。

可能是游标适配器def的问题。我用:

        String[] from = new String[] { DBHelper.COLUMN_NAME, DBHelper.COLUMN_LAST_NAME,
            DBHelper.COLUMN_POSITION, DBHelper.COLUMN_DEPARTMENT,
            DBHelper.COLUMN_PICTURE };

    int[] to = new int[] { R.id.textView1, R.id.textView2, R.id.textView3,
            R.id.textView4, R.id.imageView1 };

2 个答案:

答案 0 :(得分:1)

我认为您的原始查询是错误的。它应该是

String selectQuery = "SELECT * FROM " + DBHelper.TABLE_STAFF 
    + " WHERE " + DBHelper.COLUMN_DEPARTMENT + "='management'";

您可以查看基本的SQL查询语法here

答案 1 :(得分:0)

我认为你在函数中忘记了平等的陈述:

    String selectQuery = "SELECT  * FROM " + DBHelper.TABLE_STAFF + " WHERE " + 
    DBHelper.COLUMN_DEPARTMENT + "='management'";

DBHelper.COLUMN_DEPARTMENT必须是您的colomn名称,管理必须是您想要的colomn中的值

您可以阅读此Articlethis以获取有关基本SQL查询的更多信息