SQLite两列语句,使用游标获取值

时间:2014-07-28 21:34:33

标签: java android sqlite

我正在尝试从SELECT中获取SQLite数据库中2列的值,当我检索它时,我想在我创建的具有(String,String)参数的自定义ArrayList中添加这些值

我的数据库帮助方法是:

public ArrayList<Custom> getAllvalues(String TABLE, String COLUMN1, String COLUMN2) {

        ArrayList<Custom> list = new ArrayList<Custom>();

        // Select All Query
        String selectQuery = "SELECT "+COLUMN1+","+COLUMN2+" FROM " + TABLE;

        SQLiteDatabase db = this.getWritableDatabase();
        try {

            Cursor cursor = db.rawQuery(selectQuery, null);
            try {

                // looping through all rows and adding to list
                if (cursor.moveToFirst()) {
                    do {
                        list.add(new Custom(cursor.getString(0),cursor.getString(1)));

                    } while (cursor.moveToNext());
                }

            } finally {
                try { cursor.close(); } catch (Exception ignore) {}
            }

        } finally {
             try { db.close(); } catch (Exception ignore) {}
        }

        return list;
    }

当我得到价值观时,在我的主要班级......我得到这样的结果:

VALUE1 NULL;
NULL  VALUE2;
VALUE3 NULL;
NULL VALUE4;

我希望这些值在列表中如下:

VALUE1 VALUE2;
VALUE3 VALUE4;

我试图像这样访问光标:

cursor.getColumnIndex("My_column_name");

我检索了这些值,但总是以相同的顺序.. value,null,null,value,value,null等...

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试检查您的数据库,看看您获取的行是否填充了您尝试检索的数据。查看this answer以导出.db文件。并下载SQLite Debugger以打开它以查找数据库中的信息。

如果您的信息被正确保留,请尝试通过调用query的{​​{1}}方法来获取相关信息:

SQLiteDatabase

希望这有帮助。