首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从sqflite表中获取数据并将其显示为% inside text小部件

从sqflite表中获取数据并将其显示为% inside text小部件,可以按照以下步骤进行操作:

  1. 导入必要的库和依赖项:
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
  1. 创建数据库并打开连接:
代码语言:txt
复制
Future<Database> openDatabase() async {
  final databasePath = await getDatabasesPath();
  final path = join(databasePath, 'your_database.db');
  return await openDatabase(path, version: 1,
      onCreate: (Database db, int version) async {
    await db.execute(
        'CREATE TABLE your_table (id INTEGER PRIMARY KEY, data TEXT)');
  });
}

final database = await openDatabase();
  1. 从表中获取数据:
代码语言:txt
复制
Future<List<Map<String, dynamic>>> getDataFromTable() async {
  final List<Map<String, dynamic>> result = await database.query('your_table');
  return result;
}

final dataList = await getDataFromTable();
  1. 将数据显示为% inside text小部件:
代码语言:txt
复制
Widget buildDataWidget() {
  return ListView.builder(
    itemCount: dataList.length,
    itemBuilder: (BuildContext context, int index) {
      final data = dataList[index]['data'];
      return Text('$data%');
    },
  );
}

final dataWidget = buildDataWidget();

完整的示例代码如下:

代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Database database;
  List<Map<String, dynamic>> dataList = [];

  @override
  void initState() {
    super.initState();
    openDatabase().then((db) {
      setState(() {
        database = db;
      });
      getDataFromTable().then((data) {
        setState(() {
          dataList = data;
        });
      });
    });
  }

  Future<Database> openDatabase() async {
    final databasePath = await getDatabasesPath();
    final path = join(databasePath, 'your_database.db');
    return await openDatabase(path, version: 1,
        onCreate: (Database db, int version) async {
      await db.execute(
          'CREATE TABLE your_table (id INTEGER PRIMARY KEY, data TEXT)');
    });
  }

  Future<List<Map<String, dynamic>>> getDataFromTable() async {
    final List<Map<String, dynamic>> result = await database.query('your_table');
    return result;
  }

  Widget buildDataWidget() {
    return ListView.builder(
      itemCount: dataList.length,
      itemBuilder: (BuildContext context, int index) {
        final data = dataList[index]['data'];
        return Text('$data%');
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Data from sqflite'),
      ),
      body: dataWidget,
    );
  }
}

这个示例代码演示了如何从sqflite表中获取数据,并将其显示为% inside text小部件。在这个示例中,我们创建了一个数据库并打开连接,然后从表中获取数据,并使用ListView.builder构建了一个列表小部件,将数据显示为% inside text小部件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 入门指北之数据持久化

path_provider用于获取手机的存储文件位置,一共有三个方法 getTemporaryDirectory临时目录,在 Android 对应的方法 getCacheDir,而在 iOS 对应为...NSCachesDirectory,可以通过系统检测清除 getApplicationDocumentsDirectory缓存目录,在 Android 对应为 AppData文件夹,在 iOS 对应为...先看下效果吧,最终重启 App 后,数据也能正常读取显示,说明数据被保存下来了 ? ? ? ?...以上代码查看 data_persistence_main.dart文件 Sqflite Flutter实现数据库存储需要通过插件 sqflite来实现,写文章的时候最新的版本是 sqflite 1.1.3...sqflite 的基本操作语句,在文档已经写得非常明白了,所以就不搬运了,这边直接讲下对于数据库的一些封装处理吧,因为打开数据库是一个很消耗资源的一个过程,所以呢,推荐实现单例会比较好。

1.4K10
  • Flutter 凉了吗?

    UI通过将不同的小部件组合在一起修改它们以适合你的App外观来创建。你几乎可以完全控制这些小部件显示方式,因此你最终总是会得偿所愿。...为了布局UI,可以使用诸如Row,Column和Container之类的小部件。对于内容,有诸如Text和RaisedButton之类。这只是Flutter提供的小部件的几个,除这些之外还有很多。...不管是对于初学者还是专家,创建数据驱动的App都非常简单,但这种简单性并不等同于质量底下。 可以使用库,以便你使用所选择的数据库。使用sqflite库,我们可以非常快速地启动运行SQLite数据库。...感谢单件模式,我们可以访问数据库并从几乎任何地方都可以进行查询,而无需每次都重新创建一个对象。 数据检索数据后,可以使用一个模型将其转换为对象。...或者,如果要将对象存储在数据,可以使用相同的模型将其转换为JSON。 如果没有将其显示给用户的方法,这些数据就不是那么有用了。

    3.1K20

    【Flutter 实战】大量复杂数据持久化

    老孟导读:上一篇文章讲解了 Android 和 iOS 的文件目录系统,此篇文章讲解如何使用 SQLite 保存大量复杂数据数据。...,如果本地没有保存数据,则需要通过网络获取数据,在返回数据之前,用户看到的是空白页面,而如果本地保存了部分新闻,则显示这部分数据,等待最新的数据返回时在刷新即可,对用户体验来说,明显第二种体验更佳。...SQLite 是目前最受欢迎的本地存储框架之一,此篇文章将会介绍如何使用 SQLite 保存、查询、删除数据等。...我觉得没有必要,应用程序使用的数据库和 SQL 语句相关知识都是非常基础的,比如打开数据库、创建、SQL 查询语句、更新语句、删除语句等,这些都是固定的格式,固定语句记住即可。...添加依赖 SQLite 并不是 Flutter 系统自带的,而是一个第三方插件,在项目的 pubspec.yaml 文件添加依赖: dependencies: sqflite: ^1.3.1

    2.2K30

    【Flutter 专题】26 图解关于 SQL 数据库的二三事 (一)

    和尚刚刚学习一下关于数据存储方面的知识点,用 sqflite数据库进行基本操作。sqflite 三方 pub 通用的引入方式。和尚仅对数据库的基本操作进行学习整理。...集成方式 pubspec.yaml 添加 sqflite: any; 在相应的 .dart 文件添加引用 import 'package:sqflite/sqflite.dart'; 根据需求对数据存储进行具体的...创建数据sqflite 创建数据库时优先创建一个路径,用来存储数据库。注:对于数据库的操作都是耗时操作,都要通过 async 和 await 异步处理。...【删】删除数据 借助 rawDelete 或 db.delete 对数据进行数据删除,和尚测试删除 id = 0和1 的对应数据sqflite 内部已处理好,若数据不存在也不会报异常...,可对部分数据字段进行调整,可以看图例的【更新】结果; 在使用 db.transaction 对数据进行增删改查时要注意 SQL 语句的完整性,包括传递 String 类型参数时要加引号,执行的是一个完整的

    1K51

    Flutter持久化存储之数据库存储(sqflite)详解

    sqflite使用 引入插件 在pubspec.yaml文件添加path_provider插件,最新版本1.0.0,如下: dependencies: flutter: sdk: flutter...作为占位符,通过第二个参数填充数据。 insert方法第一个参数操作的名,第二个参数map是想要添加的字段名和对应字段值。 2....作为占位符,通过第二个参数填充数据。 update方法第一个参数操作的名,第二个参数修改的字段和对应值,后边的可选参数依次表示WHERE子句(可使用?...作为占位符,通过第二个参数填充数据。 delete方法第一个参数操作的名,后边的可选参数依次表示WHERE子句(可使用?作为占位符)、WHERE子句占位符参数值。...创建数据库文件和对应的 // 获取数据库文件的存储路径 var databasesPath = await getDatabasesPath(); String path = join(databasesPath

    3.8K40

    目录

    目录 使用Tkinter构建你的第一个Python GUI应用程序 添加小部件 测验 使用小部件 使用标签小部件显示文本和图像 显示带有按钮小部件的可点击按钮 通过条目小部件获取用户输入 通过文本小部件获取多行用户输入...标签非常适合显示一些文本,但是它们并不能帮助你用户那里获得输入。接下来要查看的三个小部件都用于获取用户输入。 显示带有Button小部件的可点击按钮 Button小部件用于显示可单击的按钮。...小部件的有趣之处不是如何设置样式,而是使用它们用户那里获取输入的方法。...测验 展开下面的代码块进行练习,以检查你的理解: 练习:创建一个Entry小部件插入一些文本。 编写一个完整的脚本,该脚本显示一个Entry宽度40个文本单元,具有白色背景和黑色文本的小部件。...左按钮开始。按下此按钮时,应该将标签的值减小1。要执行此操作,需要知道两件事: 你如何获取文字Label? 如何更新的文字Label?

    29.7K20

    Flutter的本地存储

    file的readString方法来获取字符串返回泛型String的Future对象 然后我们还是使用上面的代码通过Future的then方法来回去反悔的数据showSnackBar 好吧,我们还是去看下...同样的方法,我们需要在pubspec.yaml文件引入 sqflite: >=0.8.5 然后调用flutter packages get 最后在自己的Dart文件引入 import ‘package...:sqflite/sqflite.dart’; 即可在Flutter使用Sqlite 同样的,我慢还是先贴代码: 首先,我们需要获取一下我们数据库存储的目录,数据库名字name.db 然后建立库和数据...,返回泛型Database的Future对象(我们这里是使用的失去了语句建立的数据操作,大家可以根据自己需要定制相应的ORM映射库) 我们建立了一个名为user 主键id,一个Text类型name...的数据

    4.9K30

    Flutter 应用数据持久化指南

    不支持查询操作,只能通过键获取值。 存储的数据量有限,不适合存储大量数据。 4....SQLite 数据库 4.1 安装与导入 在Flutter项目中使用SQLite数据库,需要添加sqflite依赖,运行flutter pub get来安装依赖包。...优点: 类型安全,可以在编译时捕获到数据库操作的错误。 支持使用Dart语言来定义数据和查询,简化了开发流程。 提供了丰富的功能和灵活的API,适用于各种数据操作需求。...你可以使用相关的云存储SDK来实现数据的上传和下载操作。 导出文件:用户提供导出数据的功能,允许用户将数据导出文件进行备份。...你可以将数据导出CSV、JSON等格式的文件,并提供下载或共享功能,方便用户进行数据备份和恢复。 数据同步:使用数据同步技术,将应用数据与服务器端或其他设备进行同步。

    40010

    基于 Flutter 定制一套快速开发框架(一)

    ,因此注重交互体验一致性的小伙伴来说,这毫无疑问就是首选,今天的主题是基于 Flutter ,如何打造一款快速开发的框架。...网络请求:考虑使用dio包,因为它提供了更多的功能,如拦截器、全局配置、FormData、请求取消等,基本覆盖了网络请求常见的功能,在拦截器我们可以实现很多统一处理的业务逻辑,嗯,很棒。...布局响应式:利用MediaQuery来获取设备信息,根据不同屏幕尺寸调整布局。...数据持久化:考虑持久化方案,如shared_preferences、hive、sqflite等,设计数据模型和存储API,以便于数据的读取和写入,最好是统一的 Storage 抽象,来屏蔽掉这些持久化的细节...数据持久化模块和路由模块我们使用auto_route库来自动生成路由和处理导航,然后使用hive库来实现本地数据存储。前者是因为可以自动生成路由,后者是性能比较不错。

    50320

    Flutter构建布局 顶

    的第二个子项(也是文本)显示灰色。 标题行的最后两项是一个红色的星形图标和文字“41”。 将整行放在容器沿着每个边缘填充32像素。 这是实现标题行的代码。...这些小部件安排在ListView,而不是列,因为在设备上运行应用程序时,ListView会自动滚动。...如果您愿意,可以构建仅使用小部件的标准小部件的应用程序。 如何在Flutter布置单个小部件? 本节介绍如何创建一个简单的小部件将其显示在屏幕上。...您可以使用“行”小部件水平排列小部件使用“列”小部件垂直排列小部件。 重点是什么? 行和列是两种最常用的布局模式。 行和列分别获取子窗口小部件的列表。...例如,将标高设置24.0,将卡片视觉上抬离表面使阴影变得更加分散。 有关支持的高程值的列表,请参见材料准则的高程和阴影。 指定不支持的值将完全禁用投影。

    43.1K10

    C++ Qt开发:Charts与数据库组件联动

    首先我们需要生成一些测试数据,在文章课件中有一个InitDatabase案例,该案例通过QSql组件动态创建一个Times,该中有三个字段分别记录了主机IP地址、时间、以及数据动态的想插入一些随机测试数据...,读者可运行这段程序等待十分钟以上,此时数据库database.sqlite3将会出现如下所示的数据集; 再来看下主窗体是如何设计的,左侧使用一个ComboBox下拉选择框,右侧使用两个可自由调节的...接着,创建一个QLineSeries对象,表示折线图中的数据序列,并将其添加到图表确保正确显示,创建了X轴和Y轴的坐标轴对象,设置了范围、格式和刻度。...最后,将X轴和Y轴与折线序列关联,以便在图表显示数据。这段代码实现了一个简单的折线图的初始化,进一步添加和展示数据提供了基础。...,事件触发时执行,其主要功能是数据查询记录根据用户在界面上选择的设备地址、起始时间和结束时间条件,筛选符合条件的数据,并将其显示在折线图中。

    20210

    C++ Qt开发:Charts与数据库组件联动

    首先我们需要生成一些测试数据,在文章课件中有一个InitDatabase案例,该案例通过QSql组件动态创建一个Times,该中有三个字段分别记录了主机IP地址、时间、以及数据动态的想插入一些随机测试数据...,读者可运行这段程序等待十分钟以上,此时数据库database.sqlite3将会出现如下所示的数据集;再来看下主窗体是如何设计的,左侧使用一个ComboBox下拉选择框,右侧使用两个可自由调节的Date...接着,创建一个QLineSeries对象,表示折线图中的数据序列,并将其添加到图表确保正确显示,创建了X轴和Y轴的坐标轴对象,设置了范围、格式和刻度。...最后,将X轴和Y轴与折线序列关联,以便在图表显示数据。这段代码实现了一个简单的折线图的初始化,进一步添加和展示数据提供了基础。...,事件触发时执行,其主要功能是数据查询记录根据用户在界面上选择的设备地址、起始时间和结束时间条件,筛选符合条件的数据,并将其显示在折线图中。

    19210

    OpenCV3 和 Qt5 计算机视觉:1~5

    滚动区域:这提供了一个可滚动区域,非常适合显示由于屏幕尺寸或可见数据量大而无法完全看到的内容(此小部件的等效 Qt 类称为QScrollArea) 。...我们将通过使用QSettings类来实现它,您已经学习了如何使用它。 最好有一个集中的单一 Qt 样式来照顾我们应用的整体外观,并且更好的是磁盘加载而不是将其嵌入应用本身。...在第 4 章,“Mat和QImage”,这将成为历史,因为您将学习如何将 OpenCV Mat转换为QImage类,然后将其正确显示在 Qt 小部件。...在窗口中添加QWidget(小部件)。 将其升级到新创建的小部件。 实际上,将QWidget提升为定制的小部件也是第三方开发人员(或也许是互联网)获得小部件希望在应用窗口中使用它时使用的方法。...另外,再看一下架构,我们可以看到模型视图设计模式,其中模型(在本例场景)完全不知道如何显示显示哪个部分。

    5.8K20

    初步学习Qt布局

    介绍 Qt包含一个布局管理类的集合,它们被用来描述widgets如何在应用程序的用户界面呈现的。...编写自定义布局类,必须定义以下内容: l 由布局控制的存放元素的数据结构。每个元素都是一个QLayoutItem。在这个例子,我们将使用QList 。...l setGeometry(),描述如何完成布局 l sizeHint(),布局的首选大小 l itemAt(),描述如何递归布局 l takeAt(),描述如何移除布局的元素。...窗体小部件可以显示数据和状态信息,接受用户输入,和提供组织其他窗体小部件的容器。 没有嵌入到父级窗体小部件部件被称为窗口(window)。...窗体小部件的样式 样式(styles)绘制窗体小部件封装了GUI的外观和感觉。Qt的内置窗体小部件使用QStyle类完成几乎所有的绘制工作,以确保它们看来确实是一致的、本地窗体小部件

    7K10

    使用交互组件(ipywidgets)“盘活”Jupyter Notebook(上)

    这就是ipywidgets发挥作用的地方:它们可以嵌入到笔记本,并提供一个用户友好的界面来收集用户输入查看更改对数据/结果的影响,而不必与代码交互;你的笔记本可以静态文档转换为动态仪表盘——非常适合显示你的数据故事...这是一个完整的教程,介绍如何完全控制小部件来创建强大的仪表盘。我们将从基础开始:添加一个小部件解释事件如何工作,然后逐步开发一个仪表盘。我将一步一步地指导你,以我们正在进行的示例基础。...控制部件的输出 在本节,我们将探索如何使用小部件来控制dataframe。...首先,我们将获取数据将其加载到一个dataframe: 1import pandas as pd 2import numpy as npurl = "https://data.london.gov.uk...不过,理想的行为是每次刷新数据帧的内容。 捕获小部件输出 解决方法是在一种特殊的小部件(即输出)捕获单元输出,然后将其显示在另一个单元

    13.5K61

    Flutter利用MapCache加sqflite实现一个伪LRU三级缓存

    3、假如说,我们把接口定义成这样的,那么背后的实现,我们准备如何去做,首先,我是这么考虑的,写缓存,要先写到内存缓存,在写到磁盘缓存,在写的过程,要使用新的替换旧的,磁盘缓存,和内存缓存都也要有大小的显示...5、MapCache作为内存缓存,sqflite作为磁盘缓存,那么好,LRU怎么实现呢?...,以及偷懒的LRU实现: import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; ///缓存数据库名字 const...String dbName = "data.db"; ///缓存名字 final String tableCache = "table_cache"; ///字段 final String columnId...2、过期策略似乎还可以优化,比如让数据记录自己有效时间,这样一来,可以更加智能的清理数据,清理过期的,而不是简单除暴的按生成时间去移除。

    3.5K61

    Qt ModelView教程——只读Table

    标准部件 Table Widget是用户可以更改的数据元素的2D部件。 可以通过读写部件提供的数据元素将部件集成到程序。...此方法非常直观,在许多应用程序很有用,但是使用标准窗口部件显示和编辑数据可能会出现问题。 数据的两个副本必须协调一致:一个在小部件外部;另一个在小部件内部。...一旦View接收到指向模型的指针,它将读取显示其内容并成为其编辑器【译者注:setModel后,View自动读取数据显示】。...我们创建MyModel的实例使用tableView.setModel(&myModel), 将其指针传递给tableView ,tableView将调用它收到的指针获得以下信息: 应显示多少行和多少列...行和列信息由参数index指定,并且角色设置Qt :: DisplayRole 。 下一节将介绍其他角色。 在我们的示例,应显示数据已生成。

    1.9K20

    在 Flutter 探索 StreamBuilderimage

    A stream 构建器,它可以将流的多个组件更改为小部件 Stream 像一条线。当您从一端输入值而另一端输入侦听器时,侦听器将获得该值。...key: 小部件的键,用于控制小部件如何被另一个小部件取代 Stream? stream: 一个流,其快照可以通过生成器函数获得 T?...initialData: 将利用这些数据制作初始快照 required AsyncWidgetBuilder builder: 生成过程由此生成器使用 如何实现 dart 文件的代码: 你需要分别在你的代码实现它...然后,在这一点上,您可以 AsyncSnapshot 的数据属性获取信息。 由于上面属性的值,您可以计算出应该在屏幕上呈现什么。...如果流空,则可能发生 waiting: 等待: 与异步计算关联等待协作。在这个上下文中,它暗示流还没有完成 active: 活跃的: 与活动的异步计算相关联。

    2.5K00
    领券