如何在flutter中打开和查询.sqlite只读数据库


void openDb() async {
Database _db;
_db ??
await openReadOnlyDatabase(
'package:myAppName/databasesFolder/db_drill_pipe.sqlite');
var list = await _db.query('table_name_1', columns: ['column_title_1]);
print('$list');
}

我得到这个错误:

Tried calling: query("table_name_1", columns: Instance(length:1) of '_GrowableList')
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      openDb (package:kbook/databases/db_helper.dart:50:24)
<asynchronous suspension>

我有一个扩展名为.sqlite的数据库文件,它有三个表。我所需要的只是当用户在运行时触发时打开并查询该文件中的数据,我永远不会以只读方式写入或更新数据库。我原以为这会比json更具响应性,但我被卡住了。

我希望这在某种程度上有所帮助,这就是我在代码中使用它的方式:

Future<Database> get database async {
if (_database != null) return _database;
_database = await _databaseConnection.setDatabase();
return database;
}
readData(table) async {
var connection = await database;
return await connection.query(table);
}
read() async {
return await _repository.readData('Table');
}

我认为这个错误与sqflite没有任何关系。事实上,_db是空的,因为它没有被分配给任何东西。我认为不是

_db ?? await openReadOnlyDatabase...

你打算做

_db = await openReadOnlyDatabase....

最新更新