从SQLite获取所有行

Yoo*_*Yoo 42 sqlite android

我一直在尝试从SQLite数据库中获取所有行.但是我从下面的代码中得到了最后一行.

FileChooser类:

public ArrayList<String> readFileFromSQLite() {

  fileName = new ArrayList<String>();

  fileSQLiteAdapter = new FileSQLiteAdapter(FileChooser.this);
  fileSQLiteAdapter.openToRead();
  cursor = fileSQLiteAdapter.queueAll();

  if (cursor != null) {
    if (cursor.moveToFirst()) {
      do {
        fileName.add(cursor.getString(cursor.getColumnIndex(FileSQLiteAdapter.KEY_CONTENT1)));
      } while (cursor.moveToNext());

    }
    cursor.close();
  }

  fileSQLiteAdapter.close();
  return fileName;
}
Run Code Online (Sandbox Code Playgroud)

FileSQLiteAdapter类:

public Cursor queueAll() {
  String[] columns = new String[] { KEY_ID, KEY_CONTENT1 };

  Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null,
                null, null, null, null);
  return cursor;
}
Run Code Online (Sandbox Code Playgroud)

请告诉我,我的错误在哪里.欣赏.

Sam*_*iya 81

尝试:

Cursor  cursor = db.rawQuery("select * from table",null);
Run Code Online (Sandbox Code Playgroud)

并为List<String>:

if (cursor.moveToFirst()) {
  while (!cursor.isAfterLast()) {
    String name = cursor.getString(cursor.getColumnIndex(countyname));

    list.add(name);
    cursor.moveToNext();
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 那么它与你的数据库的问题首先检查它并使用`sqlite browser` (2认同)

Sur*_*gch 5

使用Android的内置方法

如果你想每一列和每一行,那么就传递null了和参数。SQLiteDatabase columnselection

Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

更多细节

其他答案可以使用rawQuery,但您可以使用Android的内置SQLiteDatabase。该文档query说,你可以通过在nullselection参数来获取所有行。

selection 传递null将返回给定表的所有行。

虽然你也可以在传递nullcolumn参数来获取所有的列(如在一个班轮以上),最好是只返回列,你所需要的。该文件

columns 传递null将返回所有列,不建议这样做,以防止从不会使用的存储中读取数据。

SQLiteDatabase db = mHelper.getReadableDatabase();
String[] columns = {
        MyDatabaseHelper.COLUMN_1,
        MyDatabaseHelper.COLUMN_2,
        MyDatabaseHelper.COLUMN_3};
String selection = null; // this will select all rows
Cursor cursor = db.query(MyDatabaseHelper.MY_TABLE, columns, selection,
        null, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)