I have tried many time; the searched data are all about
db.execute
there is no data about db.query, in this case I cannot select data from database and also showing null value in calling.
I think everything is ok.
DatabaseHelper.dart
import 'dart:io';
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart';
import 'models/book.dart';
class DatabaseHelper {
DatabaseHelper._privateConstructor();
static final DatabaseHelper instance = DatabaseHelper._privateConstructor();
static Database? _database;
Future<Database> get database async => _database ??= await _initDatabase();
Future<Database> _initDatabase() async {
Directory documentDirectory = await getApplicationDocumentsDirectory();
String path = join(documentDirectory.path, 'asset/database/saheeh_bukhari.db');
return await openDatabase(path);
}
Future<List<Book>> getBooks() async {
Database db = await instance.database;
var books = await db.query('books');
print(books);
List<Book> bookList = books.isNotEmpty
? books.map((e) => Book.fromMap(e)).toList()
: [];
return bookList;
}
}
Home.dart
body: Center(
child: FutureBuilder<List<Book>>(
future: DatabaseHelper.instance.getBooks(),
builder: (BuildContext context, AsyncSnapshot<List<Book>> snapshot) {
if (snapshot.hasData) {
return Center(
child: Text("Loading..."),
);
}
return snapshot.data!.isEmpty
? Center(
child: Text("No data found."),
)
: ListView(
children: snapshot.data!.map((book) {
return Center(
child: ListTile(
title: Text(book.dari),
),
);
}).toList(),
);
},
),
),
I have tried many time; the searched data are all about db.execute there is no data about db.query, in this case I cannot select data from database and also showing null value in calling.
4