问题标签 [sqflite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - Flutter中的Sqlite,数据库资产如何工作
我正在查看此(https://github.com/tekartik/sqflite/blob/master/doc/opening_asset_db.md)来填充已格式化且应用程序需要的数据,仅用于读取功能。
因此,当我们已经拥有外部 CSV 文件中的所有信息时,我对创建 SQLite 数据库的理解是,在我的应用程序的 .dart 文件中创建类模型,例如
那么如果我有一个 CSV 文件,其中包含所有用户信息(其值对应于用户类),我是否可以使用数据库资产来填写信息,然后在颤振应用程序中调用它? 我意识到可能有很多方法可以解决这个问题,但是 .db 文件究竟是什么存储的,它的格式如何?我可以在这个 .db 文件中实现一个 .csv 文件吗?
dart - 如何在 Navigator.pop() 之后从警报框中更新页面状态
我的 Flutter 应用中有 2 个页面 - ShoppingListsPage 和 ItemsListPage。我在 ShoppingListsPage 中有一个 FloatingActionButton,单击它会将用户带到 ItemsListPage,他可以在其中将 ListView 中的项目添加到购物清单,然后通过单击 AppBar 中的按钮保存列表。一旦用户单击 AppBar 中的“完成”按钮,我将显示一个 AlertDialog 对话框以询问用户列表的名称。用户输入列表名称并单击对话框中的“保存”按钮后,我将列表详细信息保存在 SQLite 数据库中(我使用 sqflite 插件进行数据库交互),然后想将用户移回新创建列表的 ShoppingListsPage必须显示。
鉴于这种情况,我观察到的是,当我将列表保存到数据库并使用 Navigate.pop(context) 导航到 ShoppingListsPage 时,执行从数据库中获取购物清单的代码,但它不会检索最新添加的内容,并且因此 ShoppingListsPage 中的 ListView 不会使用最新更改进行更新。但是,如果我导航到其他页面并返回,则会显示新添加的列表。看起来从 ShoppingListsPage 中的数据库获取数据是在数据持久保存在数据库中之前发生的。如何确保从数据库中获取成功(使用最新数据)?
在相关说明中,有什么更好的方法可以确保在 Navigator.pop(context) 将用户带到上一个屏幕之前调用并完成我必须将数据保存到数据库的异步函数?我与 SQLite 数据库交互的所有函数都是异步函数。
这是在 ItemsList 页面中显示对话框、保存数据并导航回 ShoppingListsPage 的代码:
这是 ShoppingListsPage 中用于获取和显示数据的代码:
sqlite - 不使用 Flutter 的 SQFlite 关闭数据库?
我正在尝试使用 Flutter 的SQFlite 插件来了解数据库操作。在使用推荐文档中,作者说:
该 API 很大程度上受到 Android ContentProvider 的启发,其中典型的 SQLite 实现意味着在第一次请求时打开数据库并保持打开状态。
就我个人而言,我的 Flutter 应用程序中有一个全局参考数据库,以避免锁定问题。如果多次调用,打开数据库应该是安全的。
如果引用丢失(并且数据库尚未关闭),则仅在小部件中保留引用可能会导致热重载问题。
这是否意味着我创建了一个打开数据库连接的单例类(如这里),然后我从不关闭它?也就是说,我从不这样做:
我过去在使用 Android SQLite 时遇到过并发问题(如此处所述),所以我通常使用内容提供程序来解决这个问题。但是,我只是在使用它时并没有真正了解内容提供商在幕后所做的事情。保持与数据库的单个连接是否会做同样的事情?应用退出时是否需要关闭数据库?该用户似乎认为这无关紧要。
dart - Flutter - 如何更新 Sqflite 中的表结构?
我的应用程序正在生产中,我想在用户更新应用程序时管理用户数据而不丢失他们的数据,我如何使用sqflite
. 明确地,我想添加一列并删除另一列。
dart - 如何在 Flutter 中使用 SQFlite 进行数据库插入
如何使用 SQFlite 插件将数据插入 Flutter 中的数据库?
那里有许多解决问题的问题,但我找不到可以添加规范答案的问题。我的答案如下。
dart - 如何使用 Flutter SQFlite 获取数据库表中的行数
如何在 Flutter 中获取数据库表的行数。我正在使用 SQFlite 插件。
我假设它类似于 Android,但 Android 有DatabaseUtils.queryNumEntries(db, TABLE_NAME)
. SQFlite 有类似的东西吗?
我在下面尽我所知回答这个问题,但如果有更好的答案,我会很高兴。
android - 如何在 Flutter 中将文件从本地存储导入 DB
我的目标是从手机本地存储 ~/Downloads 打开一个 CSV 文件并将其导入数据库。
我正在使用 Flutter,到目前为止,我已经查看了十几个示例,但都没有成功。
但是,我能够在控制台中打印文件的内容,但为此我必须在应用程序项目的 assets/res 文件夹中有一个文件。
如果我使用 getExternalStorageDirectory,我会得到 emulated/storage/0/。如何访问设备的内部存储(不是外部存储,因为使用的手机没有 SD 卡选项,或者如果有,则不会使用)?
对于数据库,我能够使用 sqflite 获得一个工作示例,但我完全是菜鸟,我无法让它在我已经设计的应用程序中工作。
dart - StreamBuilder 抛出脏状态
我正在尝试从 Internet 获取一些数据,将其存储到我的 sqlite 数据库并使用ListView
.
当我第一次获取数据时,一切正常并且我能够在屏幕上看到数据,数据也插入到 sqlite 数据库中,但是当我重新打开应用程序时,我收到一条错误消息
这是我的模型课
以下是我的存储库类
以下是我的集团课程
据我所知,错误一定是由于数据库初始化不当而发生的,但是当我进行第一次网络请求时,一切正常,我在控制台中没有收到任何错误,并且数据库也已初始化。我无法理解为什么该错误第二次发生?
database - 如何在 Flutter 中构建动态字符串列表?
我正在编写一个应用程序/游戏,其中用户在存储在SQFLite 数据库中的文本字段上输入他自己的规则中的文本字段上输入他自己的规则。
规则与朋友相关,所以它在一个类 Friend 中,具有 id、name、rule0、rule1、rule2...rule9。这是真的很烦人,但我认为我需要将它放在 Friend 类中,以便它与正确的friend.id一起存储。
当我尝试
List<Strings> rules = [rule0, rule1];
或
List<dynamic> rules = [...];
有谁知道我该如何解决这个问题?创建一个新的类规则,每个规则都有与正确朋友相关的 ID 吗?或者,如果我可以在 Friend 中创建一个动态列表?
真的迷失了这一点。欢迎任何帮助。