我正在尝试从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等...
谢谢!
答案 0 :(得分:1)
尝试检查您的数据库,看看您获取的行是否填充了您尝试检索的数据。查看this answer以导出.db文件。并下载SQLite Debugger以打开它以查找数据库中的信息。
如果您的信息被正确保留,请尝试通过调用query
的{{1}}方法来获取相关信息:
SQLiteDatabase
希望这有帮助。