我使用包創建了一個本地資料庫flutter
sqflite
來存盤tasks
我的任務管理器應用程式。現在我想計算任務總數,特別是done tasks
.
概括:
我想向用戶展示您已經完成了多少任務以及您必須在 UI 中完成多少任務。為此,我想要我提到的具體計數。
任務的模態類
class Task implements Comparable {
final int id;
final String taskTitle;
bool isDone;
Task({
required this.id,
required this.taskTitle,
required this.isDone,
});
Task.fromRow(Map<String, Object?> row)
: id = row['id'] as int,
taskTitle = row['taskTitle'] as String,
isDone = (row['isDone'] as int) == 1 ? true : false;
@override
String toString() =>
'Task:: id = $id , Title = $taskTitle , is Done = $isDone';
@override
int compareTo(covariant Task other) => other.id.compareTo(id);
}
資料庫函式類
class TaskDatabase {
final String dbName;
Database? _db;
List<Task> _tasksList = [];
final _streamController = StreamController<List<Task>>.broadcast();
TaskDatabase({required this.dbName});
Stream<List<Task>> all() =>
_streamController.stream.map((tasks) => tasks..sort());
// opening database function
// closing database function
// fetching database data function
// deleting database data and updating etc...
}
我正在使用從資料庫List<Task>
中cache
獲取的資料,并使用 astreamBuilder
從該串列資料中呈現 UI。
存在于資料庫函式類(Open DB Func)中的示例資料庫函式
Future<bool> open() async {
if (_db != null) {
return true;
}
final directory = await getApplicationDocumentsDirectory();
final path = '${directory.path}/$dbName';
try {
final db = await openDatabase(path);
_db = db;
//creating the database table using sqflite
const createTable = '''CREATE TABLE IF NOT EXISTS "TABLEOFTASKS" (
"id" INTEGER NOT NULL,
"taskTitle" TEXT,
"isDone" INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY("id" AUTOINCREMENT));''';
await db.execute(createTable);
// read all existing task objects from the db
_tasksList = await _fetchTasks();
_streamController.add(_tasksList);
return true;
} catch (e) {
print('error = $e');
return false;
}
}
uj5u.com熱心網友回復:
嘗試使用它來計算所有任務
var count = await database.rawQuery('SELECT COUNT(*) FROM TABLEOFTASKS');
并使用它來完成所有任務
var tasksDone = await database.rawQuery('SELECT COUNT(*), TABLEOFTASKS.isDone
FROM TABLEOFTASKS WHERE TABLEOFTASKS.isDone = 1');
我不確定他們是否以這種方式作業,但我在 MySql 命令列中使用這個查詢并且它作業正常
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470230.html
下一篇:平滑頁面指示器