如何检查 table 是否为空?

How to check if table is empty in flutter?

我在SO上看到了很多答案,但几乎都与android有关。我想在启动我的应用程序之前检查 table 是否为空。如何实现?

将这个 https://pub.dev/packages/sqflite 包添加到您的依赖项中,然后在 initState 中您可以调用一个函数来检查 table 是否为空

import 'package:flutter/material.dart';
import 'package:sqflite/sqflite.dart';

void main() {
  runApp(MaterialApp(home: Database()));
}


class Database extends StatefulWidget {
  @override
  _DatabaseState createState() => _DatabaseState();
}

class _DatabaseState extends State<Database> {

  var db;
  int count;
  @override
  void initState() {
    // TODO: implement initState
    tableIsEmpty();
    super.initState();
  }
  void tableIsEmpty()async{
     db = await openDatabase('demo.db');
     /*await db.execute(
         'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');*/

      count = Sqflite
         .firstIntValue(await db.rawQuery('SELECT COUNT(*) FROM Test'));
     print(count);
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text( (count == 0)?'Table  is empty':'$count entries in the table'
        ),
      ),
    );
  }
}

希望对您有所帮助。