首页 > 解决方案 > 如何检查表是否为空?

问题描述

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

标签: fluttersqflite

解决方案


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

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

希望这可以帮助。


推荐阅读