如何检查 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'
),
),
);
}
}
希望对您有所帮助。
我在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'
),
),
);
}
}
希望对您有所帮助。