问题标签 [sqlite.net]

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 投票
1 回答
1019 浏览

sqlite - 使用 F# & SQLite.Net.Async PCL 创建数据库表

我正在尝试使用 C# Windows 8 应用程序中的 F# 项目创建一个表“材料”。这可能在库(SQLite.Net.Async)上更具体,但我没有太多运气让它工作。我明白了,“)”附近的错误:语法错误,这没有帮助,如果我能看到它试图执行的完整 SQL 查询,我可能会进一步解决这个问题。

Sql.fsi

Sql.fs

集线器.cs

然后是例外:

0 投票
1 回答
1037 浏览

xamarin - 如何在 Xamarin 应用程序中设置 SQLite.NET 页面大小?PRAGMA page_size 被忽略

经过大量搜索后,我无法找到如何将 SQLite.NET 页面大小从默认值 4096 更改。我有一个带有 SQLite.NET Async PCL Nuget 的 Xamarin Forms PCL 应用程序(和 Twincoders Extensions,但这不相关) .

在平台项目中,SQLiteConnectionString 似乎没有设置 Pagesize 的工具。

我的 iOS 代码如下所示:

帮助表示赞赏!如果没有办法做到这一点,也很高兴知道这一点。

******** 编辑: ********

@Paul 建议使用 PRAGMA page_size,我相信这是正确的想法。然而 SQLite.Net 会忽略更改 page_size 的请求,即使尚未创建表且日志模式为默认值。至少在 iOS 中。除非我的代码是错误的:

在 Xamarin Forms PCL 中,我有:

在我的 iOS 项目中,我有:

这会正确执行,但不会更改页面大小。

欢迎所有想法!

********进一步编辑:********

添加 VACUUM 也没有效果:

0 投票
1 回答
554 浏览

c# - 无法使用 WP8.1 项目中引用的 System.IO.Compression 和 SQLite

我的 Windows Phone 8.1 Silverlight 项目中有一个奇怪的错误。我刚刚创建了一个小型测试项目并获得了相同的行为:

如果我安装“Microsoft.Bcl.Compression”

然后是“SQLite.Net.Platform.WindowsPhone8”

通过 NuGet,如果我尝试压缩文件,即使我在任何行中都没有使用 SQLite.NET,我也会收到以下异常。

在 entry.Open() 的以下代码中:

mscorlib.ni.dll 中出现“System.IO.Compression.ZLibException”类型的异常,但未在用户代码中处理

附加信息:无法正确加载基础压缩例程。

如果我从项目中删除 SQLite,那么压缩会按预期成功运行。

我使用压缩几个月没有问题,然后添加了 SQLite.NET 支持,现在以一个奇怪的异常结束。

我做错了吗?

小测试项目: CompressionAndSQLiteExample.zip

0 投票
1 回答
166 浏览

xamarin - 允许在 Xamarin 上设置 page_size 的 SQLite.Net 版本?

在这里寻找或一些建议。

我的 Xamarin Forms PCL 项目正在使用 SQLite.Net-PCL、SQLite.Net.Async-PCL、SQLiteNetExtensions 和 SQLiteNetExtensions.Async——所有这些都是 NuGet。

令人失望的是,SQLite.Net-PCL 不允许将 page_size 从默认值 4096 字节更改,并且目前没有解决此问题的计划。(https://github.com/oysteinkrog/SQLite.Net-PCL/issues/128

这使我的数据库的大小无法接受;我需要 512 个字节,这将使数据库小大约八倍。所以我希望使用允许设置 page_size 的另一个版本的 SQLite-Net(用于 Xamarin iOS/Android)。

  1. 鉴于我致力于 SQLiteNetExtensions,哪个版本的 SQLite-Net 最适合使用?

  2. 最好在我的项目中包含 SQLite 源代码吗?

  3. SQLiteNetExtensions 和 SQLiteNetExtensions.Async NuGet 是否仍可与该版本的 SQLite 一起使用,或者我是否需要包含这些源?(TwinCoders 建议使用 NuGets for SQLite.Net。)

当然会很感激任何建议。

0 投票
1 回答
174 浏览

sqlite - Sqlite.net 不创建 Sqlite.net 扩展的属性

我的问题是,如果我想创建两个具有这[OneToMany]两者之间关系的表。

表 OrderPos 是在没有外键的情况下创建的,因此该InsertOrUpdateAllWithChildren方法出现异常。

我应该使用另一个派生类SqliteConnection吗?

最好的问候,托马斯

0 投票
1 回答
5644 浏览

xamarin - 如何在 Xamarin Forms PCL 的事务中使用 SQLITE 异步扩展?

我试图弄清楚如何在事务中使用 SQLITE 异步扩展方法,例如 InsertOrReplaceWithChildrenAsync(来自 TwinCoders 的 NuGet)。

在我的 Xamarin.Forms PCL 中启动时,我有:

作为旁注,我还可以执行以下操作,但我没有,因为我读到混合同步和异步数据库操作是不明智的:

我的第一个想法是:

但这会在构建时收到以下警告:

如果我在事务中使用同步方法,则以下方法确实有效:

但是,tran 只有常规的同步方法,不提供任何扩展方法,例如 InsertOrReplaceWithChildren。

我的搜索没有找到任何关于如何在事务中访问扩展方法的信息。

如果我如上所述获得 dbSync,则 dbSync 不提供扩展方法。也许这与问题有关。在我的配套 IOS 项目中,我有:

似乎添加异步包会以某种方式阻止同步扩展。然而,添加一个只有同步 SQLite.Net 和同步扩展的 PCL 助手类库,并从那里获取同步连接,并没有帮助。

0 投票
1 回答
1591 浏览

xamarin - 无法从 SQLite.Net Async PCL 获取项目

我正在努力使用 SQLite.Net Async PCL 的异步 API 按 ID 获取项目。这是我的模型课

以及此处具有一对多关系的 LineItems

这是构造函数:

除了按 ID 获取发票外,其他 CRUD 方法(插入、GetALL)都在工作,而且 Visual Studio 和 Xamarin Studio 都没有给我任何有用的堆栈跟踪。

这是获取方法

我正在传递 SQLite 的 Android 实现,就像我说创建了数据库但我无法取回 Invoice 对象一样,我什至尝试过

任何帮助将不胜感激。

0 投票
1 回答
1906 浏览

sqlite - Sqlite.net 扩展,无法使用 GetWithChildren 获取数据

我正在创建一个数据库,其中多个类作为其他类的子类。使用外键编写工作正常,但是当我尝试取回数据时,它会引发错误:

SQLiteNetExtensions.dll 中出现“SQLiteNetExtensions.Exceptions.IncorrectRelationshipException”类型的未处理异常

附加信息:MatchDetail.timeline:OneToOne 关系中的至少一个实体必须具有外键

这是我的创建代码:

我的班级:

其他类只是一个 id 和一些其他基本类型,我一直在努力解决这个问题,但它就是不想工作。

编辑:

有错误:

SQLiteNetExtensions.dll 中出现“SQLiteNetExtensions.Exceptions.IncorrectRelationshipException”类型的未处理异常

附加信息:MatchDetail.participantIdentities:找不到 OneToMany 关系的外键

0 投票
0 回答
296 浏览

c# - SQLite.Net-PCL 糟糕的性能 (InsertOrReplace)

此块需要 6 秒才能执行!?

我在 Tours 列表中只有 10 个游览,并且数据库架构非常简单。这里有什么问题?

编辑(解决方案):

为了加快速度,像这样包装多个事务:

0 投票
1 回答
58 浏览

c# - Windows Phone 8.1 运行时项目上的 SQLite.Net 扩展数据插入错误

我一直在使用 SQLiteAsyncConnection 进行所有数据库操作,最近我才知道它不允许表之间的关联。现在我正在移动代码以使用支持扩展的 SQLite.Net 扩展。当我将日期时间数据插入表中时,我发现了一个奇怪的问题。它完全改变了插入的日期时间。

这就是建立连接的方式。

我使用断点检查直到最后一点,是否插入了正确的数据。一切似乎都很好,它从按钮控件中获取了正确的日期,但是当它通过这部分代码时,日期值会发生变化。“ShiftStart & ShiftEnd”变量是表中的日期时间变量。有人可以请教。

感谢您阅读帖子。