问题标签 [sqlite-net-pcl]
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.
android - SQLite 数据库锁定读取
我们在构建存在数据库锁定的 Xamarin.Android 应用程序时遇到问题。作为应用程序功能的概述:
- 表 A 将插入其中。
- 用户按下按钮运行计划作业,将数据库中的数据同步到 API。当成功响应返回时,我们删除表中的该行。
- 作为例行程序的一部分,用户仍然可以将数据添加到表 A。
- 我们在表 A 中获得了锁。
我们构建了一个测试应用程序来尝试使用构建表 B 以复制表 A 中的数据的解决方案来模拟这一点,以便用户可以继续在表 A 上工作。但是当表 B 上的数据尝试同步时(删除在那里为了模拟这个)它的数据,我们正在获取仍然在 Get() 上的表上的锁。
我的数据库代码在这里:
我的预定工作在这里:
我的按钮代码在这里:
有没有人遇到过这样的问题,即 Read 导致锁定?根据您的经验,我有什么可以补充的吗?这对我们来说是一个巨大的障碍,我们真的不知道为什么会这样。
android - Xamarin.Forms sqlite-net-pcl 不使用值填充查询结果
我正在使用 Visual Studio Mac 8.3.2 和 Xamarin.Forms 4.2.0 创建适用于 iOS 和 Android 的应用程序。作为数据库接口库,我使用的是 sqlite-net-pcl 1.6.292。我尝试了旧版本,但结果是一样的。
在 iOS 上一切正常。查询正确返回预期结果。在 Android 上,我得到了正确数量的结果记录,但结果值始终为 0 或空。
这里有一些代码
返回的记录数是正确的。在循环中运行时,我看到每个返回元素的正确类类型,但在打印“id”和“Name”值时,“id”始终为 0,“Name”字符串始终为空字符串。
可以打开与数据库的连接。我在这里没有得到任何错误。否则我不会得到正确数量的结果。请注意:代码在 iOS 上运行正常。它在Android下失败了。任何想法将不胜感激。
更多信息: sqlite 数据库是一个预先填充的数据库。我将数据库文件复制到“资产”文件夹中,并通过以下代码打开它。
我使用数据库只读。我不是在给它写信。
sqlite - 在 Xamarin Forms 中注入 CRUD 服务
我尝试为我尝试新平台 Xamarin Forms。基于 .Net Core 和 EF Core 知识,我决定首先在 Visual Studio 2019 中包含的 Xamarin Forms Shell 模板中注入 Sqlite ORM 服务 (sqlite-net-pcl)。在此模板中,已经实现了基于 in- 的 Mock CRUD 服务内存数据结构,所以我想实现自己的服务并用 DependencyService 注入它。起初我修改了具有所需属性的数据模型:
接下来我实现了 CRUD 服务:
接下来我在 App 类中更改了注入服务:
此实现与 Xamarin Forms 中的 EF Core 一起正常工作,但 EF Core 非常慢,所以我更改了 ORM (sqlite-net-pcl),但它不起作用。
c# - 调用“创建表”以使数据库保持最新是一种好习惯吗?
我是 Xamarin 和 SQLite 的新手,所以我问自己,当添加新列时,什么是保持数据库结构最新的好做法。要使用 SQLite DB,我使用的是 SQLite-net-pcl。
我已经阅读了一些解决方案,这些解决方案使用存储在某处的版本字段,用于在版本更改时手动更改数据库结构。
但据我所见,在 SQLiteConnection 上调用 CreateTable 不仅会创建表,还会在底层类更改时更新数据库中的表。
那么,打电话是个好习惯吗
每次系统初始化时,保持数据库最新?然后,对 ClassA 的每次更改都将应用于数据库表,而不会丢失任何数据。
c# - 在 sqlite-net-pcl 中创建表时出现 System.MissingMethodException
调用此函数创建数据库时,发生错误System.MissingMethodException: 'Method not found: int SQLite.SQLiteConnection.CreateTable(SQLite.CreateFlags)'
这是它在调用期间抛出错误的地方database = new TransmodLocalDB();
应用程序.xaml.cs
这里是表的创建,调用无法继续到这里。
TransmodLocalDB.cs
在创建表之前抛出异常。使用了这个库sqlite-net-pcl by Frank A. Krueger latest version 1.6.292
c# - 一起使用 SQLiteConnection 和 SQLiteAsyncConnection
给定
我使用SQLite-Net NuGet 包。
我有用于数据库操作的旧同步 API ( SQLiteConnection)。
我需要的
我想使用新的异步 API 进行数据库操作 ( SQLiteAsyncConnection)
问题
旧的同步 API 足够大,我无法快速迁移到异步 API,因此我需要使用一个数据库文件同时使用同步和异步 API,如下所示:
如果我尝试像上面那样在一个数据库文件上使用两个连接,则会出现不同步问题,例如使用同步连接创建表不会使表通过异步连接可用。我假设连接内部有一些内部缓存或其他东西......
问题
如何正确使用一个数据库文件和两个(同步和异步)连接?
而且..我可以吗?
附加信息
- 同步和异步 API 将被锁完全覆盖。所以我希望同时使用这两个 API 不会发生冲突。
xamarin - 当xamarin中存在表时,SQLite没有这样的表错误
这就是我如何将我的表定义为这个链接:SQLite no such table error when table exists说
这是我的登录代码:
如果我在我的模拟器中运行它,它可以 100% 工作,但是当我在我的设备上运行它时,它会抛出这个错误:

我在这里做错了什么?
xamarin.forms - Xamarin 形式的 Sqlite net plc:我如何使用异步插入/更新提交 .db
我能够获取 .db 数据并设置为 sqlite 属性以进行异步查询。之后如何进行更新并将更改插入数据库?我必须建立同步数据库连接吗?
sqlite - Xamarin.Forms 中的 SQLite-Net-Pcl
我正在尝试从 Xamarin.Forms 学习 SQLite 及其用法。我发现建议将Sqlite-net-pcl 安装为NuGet 包,并使用它来创建、打开、修改数据库。到那时一切都很好。但是,我很难在网上找到有关 Sqlite-net-pcl 的更多详细信息。看来,该库没有全面的文档。这个现实让我想到了一些问题,我相信我可以从 Stackoverflow 的前辈那里得到答案:
1-如果没有您尝试使用的库的文档,那么快速学习它的最佳方法是什么?试错?在那种情况下,我认为需要完整的类层次结构。2-据我了解,Sqlite-net-pcl 是 Sqlite 的部分实现。例如,在 Sqlite 的文档中,据说支持外键,但应该启用。但是,当我使用 VisualStudio 的 ObjectBrowser 工具时,我在 Sqlite-net-Pcl 中找不到这个属性。
3-考虑到,SQLite 有更好的支持,如果我想直接在 xamarin.forms(c#) 中使用 SQLite 而不是它的派生版本(Sqlite-net-pcl),我该如何实现?
