Sqflite Database Data Saved (Create) in the Table with Flutter
import "package:flutter/material.dart";
import "package:sqflite/sqflite.dart";
import "package:path/path.dart";
/// Sqflite Database : Below code is for creating database tables and save data in the database
/// as shown below.
void main()
{
runApp(const MyApp());
}
class MyApp extends StatelessWidget
{
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Sqflite Data Saved in the Database",
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.grey,
),
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget
{
const HomePage({super.key});
@override
State<HomePage> createState()
{
return HomePageState();
}
}
class HomePageState extends State<HomePage>
{
final TextEditingController _controller = TextEditingController();
final _formKey = GlobalKey<FormState>();
late Future<Database> _database;
@override
void initState()
{
super.initState();
_openDatabase();
}
Future<void> _openDatabase() async {
_database = openDatabase(join(await getDatabasesPath(), "example_database.db"),
onCreate: (db, version) {
return db.execute("CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT)");
},
version: 1,
);
}
Future<void> _insertUser(String name) async {
final Database db = await _database;
await db.insert(
"users",
{
"name" : name,
},
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Sqflite Database Flutter"),
centerTitle: true,
backgroundColor: Colors.grey,
),
body: Center(
child: Form(
key: _formKey,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextFormField(
controller: _controller,
decoration: const InputDecoration(
labelText: "Enter Username",
),
validator: (value) {
if(value!.isEmpty)
{
return "Please enter some text";
}
return null;
},
),
const SizedBox(height: 20.0),
ElevatedButton(
onPressed: () {
if(_formKey.currentState!.validate())
{
_insertUser(_controller.text);
_controller.clear();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("User inserted Successfully"),),
);
}
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue,
),
child: const Text("Submit data",
style: TextStyle(fontWeight: FontWeight.bold, color: Colors.white),
),
),
],
),
),
),
);
}
}
Comments
Post a Comment