如何在 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获取数据

如何在 Flutter 中从 Firebase 获取当前用户 ID

如何在 Flutter 中从 Firebase Auth 获取用户 ID?

如何在 Flutter 中从 API 获取 JSON 数据

如何在flutter中从firebase实时数据库中获取数据?