如何在 Flutter 中从 SQLite 获取数据?
Posted
技术标签:
【中文标题】如何在 Flutter 中从 SQLite 获取数据?【英文标题】:How to get data from SQLite in flutter? 【发布时间】:2021-06-02 03:17:39 【问题描述】:我是 Flutter 和 SQLite 的新手,所以我试图从为 SQLite 创建 DB Browser 的数据库中获取数据。
我在控制台上得到这个: “/flutter (9624): 'Future>>'的实例”
我不知道这是错误还是警告,但我在控制台上看不到数据。
这是我的 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(""),
);
【问题讨论】:
尝试在此处添加await
:var categoryList = db.query("kategori");
【参考方案1】:
错误可能是由于返回类型不一致引起的。请查看这篇关于 Flutter 数据库的文章
https://www.tutorialspoint.com/flutter/flutter_database_concepts.htm
【讨论】:
以上是关于如何在 Flutter 中从 SQLite 获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Flutter 中从 JSON 对象中获取特定数据?
如何在 Flutter 中从 Firebase 获取当前用户 ID