问题标签 [sqlite-net-extensions]

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.

0 投票
2 回答
4546 浏览

android - Android - 'SQLite.SQLiteConnection' 的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3

在我们的 Xamarin Android 项目中,我们正在尝试从 sqlite-net 切换到官方的 sqlite-net-pcl 包。

在此处输入图像描述

但是,在创建新 SQLiteConnection 时进行此切换后,我收到以下异常:

'SQLite.SQLiteConnection' 的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3

完全例外:

Xamarin 由以下原因引起:android.runtime.JavaProxyThrowable:System.TypeInitializationException:“SQLite.SQLiteConnection”的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3 at (wrapper managed-to-native) SQLitePCL.SQLite3Provider_e_sqlite3+NativeMethods:sqlite3_libversion_number () at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number () [0x00000] in :0 at SQLitePCL.raw。 SetProvider (SQLitePCL.ISQLite3Provider imp) [0x00000] in <4472a4c16754425197d915f39ebd937e>:0 at SQLitePCL.Batteries_V2.Init () [0x0000d] in <1125db7e18f0475797b2764ec6653cf1>:0 at SQLite.SQLiteConnection..cctor () [0x00000] in /Users/fak /Dropbox/Projects/sqlite-net/src/SQLite.cs:171 --- 内部异常堆栈跟踪结束 --- 在单声道。

在日志中,我可以看到以下信息:

12-01 10:43:05.356 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.358 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库 '/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" 未找到'。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库'/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.360 D/Mono (11194 ): DllImport 错误加载库'libe_sqlite3': 'dlopen failed: library "/data/app/com.psonar.android-1/lib/x86/libe_sqlite3" not found'. 12-01 10:43:05.361 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.361 D/Mono (11194): DllImport 错误加载库'e_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”未找到'。12-01 10:43:05.362 D/Mono (11194): DllImport 错误加载库'/storage/模拟/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.364 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖libe_sqlite3':'dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.365 W/Mono (11194):DllImport 无法加载库“dlopen 失败:未找到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。libe_sqlite3':'dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.365 W/Mono (11194):DllImport 无法加载库“dlopen 失败:未找到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.368 D/Mono (11194): DllImport 错误加载库 '/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.368 D/Mono (11194): DllImport 错误加载库'/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" not found'。12-01 10:43:05.368 D/Mono (11194): DllImport error loading library '/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.368 D/Mono (11194 ): DllImport 错误加载库'libe_sqlite3': 'dlopen failed: library "/data/app/com.psonar.android-1/lib/x86/libe_sqlite3" not found'. 12-01 10:43:05.368 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.369 D/Mono (11194): DllImport 错误加载库'e_sqlite3':'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”。12-01 10:43:05.370 D/Mono (11194): DllImport error loading library '/storage/模拟/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.371 D/Mono (11194): DllImport 错误加载库 '/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.372 D/Mono (11194): DllImport 错误加载库 '/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" 未找到'。12-01 10:43:05.372 D/Mono (11194): DllImport error loading library '/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.372 D/Mono (11194 ):加载库'libe_sqlite3'的DllImport错误:'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.372 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.373 D/Mono (11194): DllImport 错误加载库'libe_sqlite3':'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.373 W/Mono(11194):DllImport 无法加载库“dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。/data/app/com.psonar.android-1/lib/x86/libe_sqlite3“未找到”。/data/app/com.psonar.android-1/lib/x86/libe_sqlite3“未找到”。

很明显出了什么问题:System.DllNotFoundException: e_sqlite3但是我找不到任何可以解决这个问题的相关信息。

我检查了我的 nuget 包,它们似乎都已正确安装。

在此处输入图像描述

我检查了包裹位置,一切都正确。非常不确定原因可能在哪里。

编辑: 在这里向包的作者报告: https ://github.com/praeclarum/sqlite-net/issues/478

0 投票
2 回答
391 浏览

sqlite-net-extensions - 当我用其他外键更新对象中的子项时,我丢失了外键

我正在使用 SQLite.NET-PCL 和 SQLiteNetExtensions

对象:

“插入 Object1 - 这有效”

“插入 Object2s 和 UpdateWithChildren Object1 - 这行得通”

“插入 Object3s 和 UpdateWithChildren Object2 - 此 UpdateWithChildren 有效,但也将 Object2.object1_id 更新为 0”

当我用孩子更新 object2 时,Object2.object1_id 为 0,我丢失了 Object2 中的 Object1_foreign_key。

任何的想法?我的问题是什么?有什么错误?

0 投票
5 回答
4430 浏览

xamarin - SQLite-net-pcl - 总是将 ID 返回为 0 (Xamarin)

由于 Android 7.0 SQlite 问题,我最近从 SQLite.NET 转到 SQLite-net-pcl。

在此过程中,我更新了所有库,并且在插入/删除等方面一切正常。

我遇到的唯一问题是,每次我从数据库中检索项目时,它的 ID 始终为 0。这会导致更新项目出现问题。以前有人遇到过这个问题吗?

提前致谢。

0 投票
0 回答
1178 浏览

xamarin - SQLite-net-pcl - SQLite.SQLiteException:无法添加主键列

我今天似乎遇到了各种各样的问题。在签署 APK 时,我根本无法让 Sqlite-net-pcl 正常运行。调试和发布工作正常,但每次我创建 APK 的签名版本时,应用程序都会因这个问题而崩溃:-

这是我的模型的一个例子: -

有没有人见过这个?

0 投票
1 回答
750 浏览

c# - SQLite.Net 扩展 - 更新时删除子级

我有以下两个课程。当我保存包含多个项目 (B) 的 A 时,我得到了预期的结果。但是,当我保存对 A 的更改时,例如一个空的 Items(B) 列表,我希望表 B 中的所有元素都会自动被删除,因为它们没有在任何地方引用(不打算单独查询它们)。相反,每个项目的外键 (IDofA) 在表中设置为 Null。在我的情况下,这导致表(B)无限增长,因为 A 的某些对象永远不会被删除,只是更新。

0 投票
3 回答
660 浏览

c# - 多对多“自我”关系SQLite:有可能吗?


我正在使用 SQLite.net 和SQLite-Net Extensions。我想创建一个多对多的自我关系。
就我而言,我有一个带有一些兄弟姐妹的子班,当然兄弟姐妹仍然是儿童类型。因此我尝试实现多对多关系:

子类

兄弟会班

这应该是所有的工作。
然后我创建一个Child并在列表中添加一个兄弟Siblings,但是当我尝试将类保存在数据库中时,InsertOrReplaceWithChildren(Child,true)仅使用ID_child1更新并ID_child2保持为 0。
知道吗?我究竟做错了什么?
亚历克斯

0 投票
1 回答
124 浏览

c# - 一对多关系数据库

我有以下 json 对象,我试图将它们存储在 sqlite 的两个不同表中。这是场景,我先下载了一组学生并检查了数据库,一切看起来都很好。

但是,当我让另一组学生插入现有表时。对于第一组数据集, fewStudentId的值为 NULL,但最新的数据集StudentId是正确的。

studentId更详细地说,您在StudentSpecifications表中也有相同的内容。如果要插入的第二个数据集具有相同的StudentId,则这些会影响第一个数据集并使它们成为NULL,但第二个数据集StudentId是正确的。

StudentId 用作ForeignKey. 我怀疑我在使用OnetoMany关系,但我不知道如何处理?

学生.cs

学生规范.cs

插入表格

0 投票
2 回答
281 浏览

xamarin.forms - 如何建立连接?

在此页面https://bitbucket.org/twincoders/sqlite-net-extensions 我发现了如何使用 SQLite-Net 扩展。但是为了开始使用它,有一个调用:

如何实现这个方法?

0 投票
3 回答
1253 浏览

c# - 多对一的 SQLite.Net 扩展无法按预期工作

我的表将包含许多重复的字符串,例如域。为了最小化数据库大小,我只想在其他表中保存唯一域并在主表中使用域 id。

一直以来我都是手动完成的,但不久前我发现 SQLite 可以自动完成。

现在我尝试使用带有“FOREIGN”键的多对一关系,但没有成功。也许我做错了什么。

示例代码

表类:

主要代码:

第一次运行后,它看起来很好。

首轮

但是在第二次运行之后,当域重复时 - sqlite 扩展插入错误的域 id

第二轮

我在哪里犯错?

0 投票
1 回答
651 浏览

sqlite - 使用 Sqlite-net 扩展的多对多关系,得到 NotSupportedException: 不知道 System.Collections.Generic.List

我有一个新的 Xamarin Forms 应用程序,我正在尝试将 Sqlite-net 和 Sqlite-net 扩展用于 ORM。我已按照本指南创建 n:n。这是我的两个对象,以及它们的中间对象:

国家

国家名

因此,在我的应用程序的起点 App.xaml.cs 中,我尝试首先创建运行良好的 NationFirstNameRepository。接下来,我尝试创建 NationRepository,在构造函数中出现异常。在 CreateTable() 行上:

国家资料库.cs

我是在做一些乱七八糟的事情,还是完全忘记了一些事情?非常感谢任何建议。