Flutter - 从数据库中获取记录并显示在 ListView Builder 中

2023-12-05

我正在开发一个 Flutter 项目并使用 Sqflite 数据库。我已经设法将数据保存在数据库中。现在我试图根据表名从数据库中获取所有记录的列表,并将它们显示在“ListView.builder”中。

数据库助手.dart

Future<List> getAllRecords(String dbTable) async {
    var dbClient = await db;
    var result = await dbClient.rawQuery("SELECT * FROM $dbTable");

    return result.toList();
}

员工列表.dart

import 'package:flutter/material.dart';
import 'package:flutter_with_db_single_helper/helpers/database_helper.dart';

var db = new DatabaseHelper();
Future<List> _users = db.getAllRecords("tabEmployee"); // CALLS FUTURE

class EmployeesListScreen extends StatefulWidget {
  @override
  _EmployeesListScreenState createState() => _EmployeesListScreenState();
}

class _EmployeesListScreenState extends State<EmployeesListScreen> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('List Of Employees'),
      ),
      body: ListView.builder(
        // itemCount: _users.length,
        itemBuilder: (_, int position) {
          return Card(
            child: ListTile(
              title:
                  Text("Employee Name: "), // EMPLOYEE NAME TO BE DISPLAYED HERE
            ),
          );
        },
      ),
    );
  }
}

我哪里做错了?我该怎么做才能在列表中显示我的所有数据库表记录?


您可以使用 FutureBuilder 来获取并显示您的数据:

        class _EmployeesListScreenState extends State<EmployeesListScreen> {
          var db = new DatabaseHelper(); // CALLS FUTURE

          @override
          Widget build(BuildContext context) {
            return Scaffold(
              appBar: AppBar(
                title: Text('List Of Employees'),
              ),
              body: FutureBuilder<List>(
                future: db.getAllRecords("tabEmployee"),
                initialData: List(),
                builder: (context, snapshot) {
                  return snapshot.hasData
                      ? ListView.builder(
                          itemCount: snapshot.data.length,
                          itemBuilder: (_, int position) {
                            final item = snapshot.data[position];
                            //get your item data here ...
                            return Card(
                              child: ListTile(
                                title: Text(
                                    "Employee Name: " + snapshot.data[position].row[1]),
                              ),
                            );
                          },
                        )
                      : Center(
                          child: CircularProgressIndicator(),
                        );
                },
              ),
            );
          }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter - 从数据库中获取记录并显示在 ListView Builder 中 的相关文章

随机推荐

  • 外键参考复合主键

    该数据库将存储有关硬件设备及其收集的数据的信息 我创建了一个设备表来存储可用的硬件设备 CREATE TABLE IF NOT EXISTS devices deviceID int 10 unsigned NOT NULL AUTO IN
  • 新窗口句柄在 IE 中消失,无法切换到新窗口

    我在 Internet Explorer 10 中使用最新版本的 Selenium 2 37 0 和 C 使用最新的 32 位 InternetExplorerDriver 2 37 0 登录网页 单击打开新窗口的按钮 然后然后将焦点更改到
  • CSS渐变产生虚线

    我需要打印 textarea 内容 用户输入 我只是使用 css 渐变在文本下方生成线条 下面的 css 对我来说很有效 linedText color 000000 line height 24px background color ff
  • C# 线程安全与 get/set

    这是 C 的详细问题 假设我有一个带有对象的类 并且该对象受锁保护 Object mLock new Object MyObject property public MyObject MyProperty get return proper
  • 画布中的模糊 svg

    为什么 SVG 在画布中无法正确缩放 全是像素化且模糊 我究竟做错了什么 我想要的只是 SVG 图像无论画布大小如何都能保持其纵横比 并且不会变得模糊 var canvas document getElementById screen ct
  • 根据填充颜色索引删除行

    我正在尝试删除范围内的所有行A7 AI300包含黄色填充的单元格 颜色索引 6 我有一些代码将删除包含该颜色的所有行 但我遇到的问题是它正在尝试运行整个工作表的代码并将冻结我的工作簿 我正在尝试插入一个范围以加快计算速度 谁能告诉我如何插入
  • 每个 Pandas 数据框行的词频

    我正在尝试找出如何获取每个数据帧行中最常见的单词 比如说前 10 个最常见的单词 我的代码可以获取整个 DF 中最常见的单词 但现在我需要更精细 import pandas as pd import numpy as np df1 pd r
  • 实体框架 4 未关闭 sql server 2005 profiler 中的连接

    我第一次在 ASP net 应用程序中使用实体框架 4 我想确保数据库连接在离开using语句后关闭 但是 在SQL Server 2005分析器中 我在离开using时看不到连接注销 只能看到输入时的登录 例如 我从一个空白的 asp n
  • 在 Matlab 中生成矩阵的所有可能组合

    知道该矩阵的元素只能是 0 或 1 如何生成 N M 矩阵的所有可能值 例如 如果我想要一个 2 2 矩阵 我们会得到 16 个具有不同可能组合的矩阵 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 等 Us
  • 绝对真实的居中背景图像

    我有一个网站 其中居中的背景图像在主页动画中起着至关重要的作用 背景会一直居中 直到浏览器窗口无法适应网站的宽度 此时背景会左对齐 这是我的身体代码 body line height 1 margin 0px auto padding 0p
  • Kivy 错误:[严重] [应用程序] 无法获取窗口,中止

    我看到的针对这个 Kivy 错误的所有解决方案对我来说都不起作用 现在已经过去两周多了 但我所有的努力都白费了 我使用 python 3 6 4 kivy 1 10 1 pycharm 作为我的 IDE 和 Windows 10 这是错误代
  • Angular – 通过提交表单将组件的新实例添加到显示中,动态加载同一组件的多个实例

    问题更新链接 Problem 我试图动态加载同一组件的多个实例 当用户提交表单时 新组件会添加 加载到屏幕上 其背后的想法是 用户可以提供表单的详细信息 然后将其显示在所创建的组件的特定实例上 我最初的想法是拥有某种数据结构 例如键对值的数
  • JOOQ:使用字符串获取表和列?

    您好 我正在将 JOOQ 与 Spring Boot 结合使用 想知道是否有办法获取表及其列及其名称字符串 例如 我希望能够通过执行以下操作来获得一张桌子 someObject getTable user 然后使用该 get 方法的结果 我
  • Vagrant 错误:无法在 Linux 来宾中挂载文件夹

    我对 Vagrant 共享文件夹有一些问题 我的基本系统是 Ubuntu 13 10 桌面 我不明白为什么我会出现此错误 是配置不正确吗 是 NFS 问题还是 Virtualbox Guest Additions 问题 我尝试过使用不同的许
  • 当用户尝试在 vb6 中打开新实例时返回到已打开的应用程序

    假设用户将我的 Visual Basic 应用程序最小化到任务栏通知图标 现在我希望当用户打开一个新实例时 旧实例应该恢复 通常 创建单实例应用程序的策略是在应用程序初始化中添加一些代码来确定实例是否已在运行 如果是 它会获取主窗口的句柄
  • 对 d3.js 堆积条形图进行排序

    目前这个堆积条形图根据每个条形的总计从左到右排序 我还如何对每个单独的条形图进行排序 而不是按键对每个单独的条形图进行排序 即 5 岁以下位于底部 65 岁及以上位于顶部 而是按值 最大 对每个单独的条形图进行排序位于底部 最小位于顶部 例
  • Fabric.js 定义图像的边界/限制

    I ve set up a fabric js based t shirt simulator Everything works as expected except for one detail that the client would
  • 如何在 Java 应用程序中使用 Akka Actors?

    我想用阿卡演员在爪哇 我下载了akka 1 0 zip并添加了akka actor 1 0 jar到我在 Eclipse 中的 构建路径 然后我写了这个 Actor 类 package com example import akka act
  • 剪切工具滞后荧光笔

    我尝试在 C Winforms 中创建荧光笔 我使用的大部分代码都在这里像截图工具一样突出显示效果但当我尝试画得太快时 它就会滞后 不确定我做错了什么 这是我尝试过的 private void pictureBox1 Paint objec
  • Flutter - 从数据库中获取记录并显示在 ListView Builder 中

    我正在开发一个 Flutter 项目并使用 Sqflite 数据库 我已经设法将数据保存在数据库中 现在我试图根据表名从数据库中获取所有记录的列表 并将它们显示在 ListView builder 中 数据库助手 dart Future