android - 如何在 Flutter 中从 SQLite 获取数据?
问题描述
我是 Flutter 和 SQLite 的新手,所以我试图从为 SQLite 创建 DB Browser 的数据库中获取数据。
我在控制台上得到了这个:“/flutter (9624): 'Future<List<Map<String, dynamic>>>'的实例”
我不知道这是错误还是警告,但我在控制台上看不到数据。
这是我的 main.dart 类和 database_helper 类的代码。
Future<Database> _getDatabase() async {
if (_database == null) {
_database = await _initializeDatabase();
return _database;
} else {
return _database;
}
}
Future<Database> _initializeDatabase() async {
var lock = Lock();
Database _db;
if (_db == null) {
await lock.synchronized(() async {
if (_db == null) {
var databasesPath = await getDatabasesPath();
var path = join(databasesPath, "appDB.db");
var file = new File(path);
// check if file exists
if (!await file.exists()) {
// Copy from asset
ByteData data = await rootBundle.load(join("assets", "myNotes.db"));
List<int> bytes =
data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
await new File(path).writeAsBytes(bytes);
}
// open the database
_db = await openDatabase(path);
}
});
}
return _db;
}
showCategories() async {
var db = await _getDatabase();
var categoryList = db.query("kategori");
print(categoryList);
}
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var databaseHelper = DatabaseHelper();
databaseHelper.showCategories();
return MaterialApp(
title: 'Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Text(""),
);
}
}
解决方案
该错误可能是由于返回类型不一致引起的。请查看这篇关于颤振数据库的文章
https://www.tutorialspoint.com/flutter/flutter_database_concepts.htm
推荐阅读
- powershell - 用powershell区分大写字符
- javascript - 使用 setInterval 自动更改文本颜色
- javascript - 如何使用 Javascript 中的线性渐变更改 div 背景图像
- python - 与 Python 中的构建技能集相关的查询
- reporting-services - 报告字段以在 ssrs 中显示正确的错误消息
- python - 使用 Pyodbc 在远程 SQL Server 中获取数据时出错
- reactjs - 在 react native 中处理大量屏幕
- php - Objective C uint8_t PHP 等价物
- python - tkinter 文本小部件无法出现在所需的窗口上
- angular - 带有离子的角度 YouTube 播放器库在 IOS 上不起作用