Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何从Flatter中的sqlite数据库中获取两个日期之间的所有记录?_Flutter_Dart_Android Database_Sqflite - Fatal编程技术网

Flutter 如何从Flatter中的sqlite数据库中获取两个日期之间的所有记录?

Flutter 如何从Flatter中的sqlite数据库中获取两个日期之间的所有记录?,flutter,dart,android-database,sqflite,Flutter,Dart,Android Database,Sqflite,我正在尝试开发一个应用程序,用户可以在其中保存交易和相关信息,如交易日期、金额、类别等。所有这些字段都使用sqflite plugin存储在SQLite数据库中。在这方面,我想实现一个查看选项,用户可以在两个日期之间查看他们的事务。 我使用以下函数从数据库中获取数据: Future<List<expense>> getExpenseDateWise() async { final db = await database; var expenses = await db

我正在尝试开发一个应用程序,用户可以在其中保存交易和相关信息,如交易日期、金额、类别等。所有这些字段都使用sqflite plugin存储在SQLite数据库中。在这方面,我想实现一个查看选项,用户可以在两个日期之间查看他们的事务。 我使用以下函数从数据库中获取数据:

Future<List<expense>> getExpenseDateWise() async {
final db = await database;
var expenses = await db
    .rawQuery('SELECT * FROM EXPENSES WHERE DATE(DATETIME) >= ? AND DATE(DATETIME) <= ?',
['$FromDate','$ToDate']); // <----- FromDate and ToDate are two DateTime variables which I am saving from a form

List<expense> expenseList = List<expense>();
expenses.forEach((currentExpense) {
  expense expenses = expense.fromMap(currentExpense);

  expenseList.add(expenses);
});
return expenseList;
}
Future getExpenseDateWise()异步{
最终数据库=等待数据库;
var费用=等待db

.rawQuery('SELECT*FROM EXPENSES WHERE DATE(DATETIME)>=?和DATE(DATETIME)Bro您检查过您的查询是否正确吗?

是的,我在数据库检查器中检查过原始查询
class _dateWiseViewState extends State<dateWiseView> {
 @override
 void initState() {
 super.initState();
 DatabaseProvider.db.getExpenseDateWise().then(
      (expenseList) {
    BlocProvider.of<ExpenseBloc>(context).add(SetDates(expenseList));
  },);}
Widget build(BuildContext context) {
String finalFrom = DateFormat('yyyy-MM-dd').format(widget.fromDate);
String finalTo = DateFormat('yyyy-MM-dd').format(widget.toDate);
return Scaffold(
  appBar: AppBar(
    title: Text("$finalFrom - $finalTo"),
  ),
  body: Container(
      child: BlocConsumer<ExpenseBloc, List<expense>>(
          builder: (context, expenseList) {
            return ListView.separated(
                itemBuilder: (BuildContext context, int index) {
                  expense expensess = expenseList[index];
                  return Container(
                      margin: const EdgeInsets.all(5.0),
                      padding: const EdgeInsets.all(10),
                      decoration: BoxDecoration(
                          color: index % 2 == 0 ? Colors.white : Colors.lightBlueAccent,
                          border: Border.all(width: 2,color: Colors.white),
                          borderRadius: BorderRadius.circular(15)
                      ),
                      child: ListTile(
                          leading: CircleAvatar(
                            backgroundColor: Colors.indigo,
                            foregroundColor: Colors.white,
                            child: Text(
                              expensess.name
                                  .substring(0, 1)
                                  .toUpperCase(),
                              style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold),
                            ),
                          ),
                          title: Text(
                            expensess.name ?? "Title",
                            style: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 30,
                              color: Colors.black,
                            ),
                          ),
                          subtitle: Text(
                            "Amount: ${expensess.amount.toString()}"
                                "\nDate: ${expensess.pickedDate}\n"
                            ,style: TextStyle(
                            fontStyle: FontStyle.italic,
                            fontSize: 20,
                            color: Colors.black,
                          ),
                          ),
                          onTap: () {
                          }
                      )
                  );
                },
              itemCount: expenseList.length,
              separatorBuilder: (BuildContext context, int index) => Divider(color: Colors.black),
                );
          },
        listener: (BuildContext context, expenseList) {},
       ),),);}
    }