我试图从 SELECT 中获取 SQLite 数据库中 2 列的值,当我检索它时,我想将此值添加到我创建的具有 (String, String) 参数的自定义 ArrayList 中.
我的DB Helper方法是:
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 等...
谢谢!
最佳答案
尝试检查您的数据库,看看您获取的行是否填充了您尝试检索的数据。看this answer导出您的 .db 文件。并下载SQLite Debugger并打开它以查找数据库内部的信息。
如果您的信息已正确保存,请尝试通过调用 SQLiteDatabase
的 query
方法来获取信息:
光标cursor = db.query(TABLE, new String[]{COLUMN1, COLUMN2}, null, null, null, null, null}
希望这有帮助。
关于java - SQLite两列语句,使用游标获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004742/