繁体   English   中英

如何从 flutter 中的 SQLite 获取数据?

[英]How to get data from SQLite in flutter?

我是 flutter 和 SQLite 的新手,所以我试图从我为 SQLite 创建的数据库浏览器的数据库中获取数据。

我在控制台上得到了这个:“/flutter (9624): 'Future<List<Map<String, dynamic>>>'的实例”

我不知道这是错误还是警告,但我在控制台上看不到数据。

这是我的 main.dart class 和 database_helper class 上的代码。

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(""),
    );
  }
}

该错误可能是由于返回类型不一致引起的。 请查看 flutter 数据库上的这篇文章

https://www.tutorialspoint.com/flutter/flutter_database_concepts.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM