如何在颤振中从 SQLite 获取数据?

时间:2021-03-03 14:09:31

标签: android ios sql sqlite flutter

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

1 个答案:

答案 0 :(得分:0)

错误可能是由于返回类型不一致造成的。请查看这篇关于颤振数据库的文章

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