This is flutter sqlite local notification project. User can add task.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.4 KiB

import 'package:sqflite/sqflite.dart';
import 'package:sqflite_pust_local_notification/models/task_model.dart';
class DBHelper {
static Database? _db;
static final int _version = 1;
static final String _tableName = "tbtask";
static final String _DbName = "task.db";
static Future<void> initDb() async {
if (_db != null) {
return;
}
try {
String _path = await getDatabasesPath() + _DbName;
_db = await openDatabase(
_path,
version: _version,
onCreate: (db, version) {
return db.execute(
"CREATE TABLE $_tableName("
"id INTEGER PRIMARY KEY AUTOINCREMENT,"
"title STRING, note TEXT, date STRING,"
"startTime STRING, endTime STRING,"
"remind INTEGER, repeat STRING,"
"color INTEGER, "
"isCompleted INTEGER)",
);
},
);
} catch (ex) {
print(ex);
}
}
static Future<int> insert(TaskModel? task) async {
return await _db?.insert(_tableName, task!.toJson()) ?? 1;
}
static Future<List<Map<String, dynamic>>> query() async {
return await _db!.query(_tableName);
}
static delete(TaskModel taskModel) async {
return await _db!
.delete(_tableName, where: 'id=?', whereArgs: [taskModel.id]);
}
static update(int id) async {
return await _db!.rawUpdate('''
UPDATE tbtask
SET isCompleted = ?
WHERE id = ?
''', [1, id]);
}
}