Untitled
unknown
plain_text
3 years ago
6.1 kB
8
Indexable
import 'dart:io';
import 'package:d_info_project/pages/personalinformation/controller/data_controller.dart';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
class DatabaseHelper {
DataController _dataController = Get.put(DataController());
static const dbname = 'user.db';
static const dbversion = 1;
static const Columnid = 'id';
//property
static const who = 'name';
static const user = 'user';
static const userRelation = 'user_relation';
static const relation = 'relation';
static const firstpage = 'firstpage';
static const secondpage = 'secondpage';
//tables name
static const nidtable = 'nid';
static const passportTable = 'passport';
static const birthCertificateTable = 'dob';
static const drivingLicenceTable = 'drivingLicence';
static const citizenTable = 'citizen';
static const marriageTable = 'marriage';
static const successionTable = 'succession';
//userList
static const StringName = 'name';
static const foreginKey = 'id';
static Database? _database;
DatabaseHelper.privateConstructor();
static final DatabaseHelper instances = DatabaseHelper.privateConstructor();
Future<Database> get database async {
if (_database != null) return _database!;
_database = await _initDatabase();
return _database!;
}
_initDatabase() async {
Directory directory = await getApplicationDocumentsDirectory();
String path = join(directory.path, dbname);
return await openDatabase(path, version: dbversion, onCreate: _onCreate);
}
Future _onCreate(Database db, int version) async {
// await db.execute('''
// CREATE TABLE $userListTable (
// $Columnid INTEGER PRIMARY KEY,
// $who TEXT NOT NULL
// )
// ''');
// db.insert(userListTable, {'name': 'own'});
await db.execute('''
CREATE TABLE $nidtable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $passportTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $birthCertificateTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $drivingLicenceTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $citizenTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $marriageTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
await db.execute('''
CREATE TABLE $successionTable (
$user TEXT,
$who TEXT NOT NULL,
$userRelation TEXT NOT NULL,
$relation TEXT NOT NULL,
$firstpage TEXT,
$secondpage TEXT
)
''');
}
Future<int> insert(
String tableName, BuildContext context, Map<String, dynamic> row) async {
Database db = await instances.database;
return await db.insert(tableName, row);
}
Future update(String tableName, String users, String whos, String relations,String userRelations,
String? firstPages, String? secondPages) async {
Database db = await instances.database;
await db.rawUpdate(
'UPDATE $tableName SET $firstpage =?,$secondpage =? WHERE $user=? AND $who=? AND $relation=? AND $userRelation=?',
[firstPages, secondPages, users, whos, relations,userRelations]);
}
Future<List<Map<String, dynamic>>> queryAllRows(String tableName) async {
Database db = await instances.database;
var da = await db.query(tableName);
print(await db.query(tableName));
print(da.length);
return await db.query(tableName);
}
queryForCheck() async {
Database db = await instances.database;
var check = await db.query(nidtable);
for (var element in check) {
_dataController.checkUser.add(element['user']);
print('the element $element');
}
print(_dataController.checkUser);
}
Future queryspecic(String tableName, String searchUser, String searchWho,String searchRelation,
String searchUserRelation) async {
Database db = await instances.database;
var res = await db.query(tableName,
columns: [
user,
who,
userRelation,
relation,
firstpage,
secondpage,
],
where: '$user=? and $who=? and $relation=? and $userRelation=?',
whereArgs: [searchUser, searchWho, searchRelation,searchUserRelation]);
print('i am the res ${res}');
return res;
}
Future updateName(
String tableName,
String whos,
) async {
Database db = await instances.database;
await db.rawUpdate('UPDATE $tableName SET $who =? WHERE $who=?', [
whos,
]);
}
}Editor is loading...