问题标签 [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 回答
1815 浏览

sqlite - Monotouch Sqlite-net 或 ADO.Net

我想在我的 Monotouch 应用程序中使用 Sqlite 数据库。从 http://docs.xamarin.com/recipes/ios/data/sqlite我看到两个选项。

  1. Sqlite网
  2. 网络

做研究我发现 Sqlite-net 易于使用,适用于 ios 和 android 但不支持外键概念。我需要在我的数据库中建立关系。学生表链接到班级、教授、作业表。没那么复杂!!!Sqlite-net 支持这种关系吗?选择 Sqlite-net 或 ADO.Net 哪个更好。赞赏...谢谢

0 投票
1 回答
4493 浏览

c# - 使用 SQLiteAsyncConnection 在 SQLite-net C# 中创建通用查询

我正在使用 SQLite-net ( https://github.com/praeclarum/sqlite-net ) 在 Android 上使用 Mono 实现数据库,并具有以下内容:

这非常适合给我一个股票列表,但我设想在我的项目中有一组表,并且不想为每个表创建单独的 AddX、GetAllX、QueryReturns(X) 等。我正在采用一种通用的方式来执行这些数据库操作,并尝试了以下方法:

但是,它不会编译为:“T”必须是具有公共无参数构造函数的非抽象类型,才能将其用作泛型类型或方法“DatabaseUtility.AsyncTableQuery”中的参数“T”。

关于如何让这种通用数据库访问工作的任何想法?

0 投票
1 回答
719 浏览

xamarin.android - sqlite-net 无法在 MonoDroid 应用程序中创建数据库

我启动 Xamarin Studio 4.0.3 并为 MonoDroid 应用程序创建一个新的解决方案。我的目标是 2.3 或更高版本。我包括来自 sqlite-net(来自站点的最新)项目的 Sqlite.cs。我确保我在项目中引用了 Mono.Data.SQLite。然后在默认 MainActivity 的 OnCreate 中,我尝试使用自述文件中显示的代码来建立数据库连接:

但是它总是失败,并出现一个异常说它无法打开数据库。如果我遵循 Greg Shackles 示例并使用 SqliteDbHelper 方法,它可以工作,但我想了解我做错了什么,即 sqlite-net 连接方法不起作用。我有一种感觉,我错过了一些简单的东西。我也尝试过将文件名传递给 SQLiteConnection() ,但是当它失败时,我添加了 OpenFlags 以查看是否是问题所在。

0 投票
2 回答
18479 浏览

c# - 类属性不包含在 sqlite 数据库列中

我有一个实体类

并使用 sqlite 连接类 obj DB 我正在创建表

我想要实现的是,我不希望 sqlite 在表中为property3. 有什么办法可以做到这一点?

我正在为 Windows 商店应用程序使用 SQLiteAsync 库。

0 投票
2 回答
221 浏览

sqlite - 通过添加快速搜索来存储大量文件的最佳方式

在我的 Windows 8/RT 应用程序中,我在独立存储中使用 SQLite 数据库 ( sqlite-net ) 女巫存储。在数据库中,我有很多数据,包括文件(图像、pdf 和其他)链接。我从网络服务器获取这些链接。当我得到链接时,我想下载文件并将其存储在本地。

我的问题是:存储大量文件(100+)的最佳方式是什么?
一个重要的想法是:我需要快速组织起来找到想要的文件

我有三个想法:

  1. 仅为文件创建另一个数据库(我无法修改现有的)
  2. 在IS中创建文件夹并直接存储在这里。
  3. 创建文件列表并将其存储在 IS 中。

哪个更好/更快?或者有人有另一个很好的解决方案?

0 投票
2 回答
3462 浏览

c# - SQL to LINQ Query with date in where 子句不起作用

我尝试通过 LINQ 查询数据库项目,但它不工作。唯一的例外是:

你调用的对象是空的。

堆栈跟踪与异常本身一样无用:

在 SQLite.TableQuery 1.CompileExpr(Expression expr, List1 queryArgs) 在 d:\XX\XX\XX\XX\XX\SQLite.cs:line 2383 at SQLite.TableQuery 1.CompileExpr(Expression expr, List1 queryArgs) 在 d:\XX\XX\XX\XX\XX\SQLite. cs: 1.CompileExpr(Expression expr, Listd:\XX\XX\XX\XX\XX\SQLite.cs 中 SQLite.TableQuery 1 queryArgs 的第 2388 行:d:\XX\XX\XX\XX\ 中 SQLite.TableQuery 1 queryArgs 的第 23081.CompileExpr(Expression expr, List行XX\SQLite.cs: d:\XX\XX\XX\XX\XX\SQLite.cs: SQLite.TableQuery 1.GetEnumerator() in d:\XX 1.CompileExpr(Expression expr, List\XX\XX\XX\XX\SQLite.cs:line 2308 at SQLite.TableQuery 1 queryArgs) 1.GenerateCommand(String selectionList) in d:\XX\XX\XX\XX\XX\SQLite.cs:line 2274 at SQLite.TableQueryXX\XX\XX\XX\SQLite.cs:System.Collections.Generic.List 1..ctor(IEnumerable1 集合的第 2521 行)
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 在 Kapital.DataModel.DataManagerOnetimeExpense.<>c__DisplayClass5.b__4() 在 d:\XX\XX\XX\XX\XX\DataModel\DataManagerOnetimeExpense.cs :
d:\XX\XX\XX\XX\XX\SQLite.cs 中 SQLite.SQLiteConnection.RunInTransaction(Action action) 的第 47 行:Kapital.DataModel.DataManagerOnetimeExpense.RetrieveItems 的第 906 行(Int32 月,Int32 年,Boolean isPaid ) 在 d:\XX\XX\XX\XX\XX\DataModel\DataManagerOnetimeExpense.cs:第 39 行 UnitTestKapital.Database.TestDataManagerOnetimeExpense.TestRetrieveItemsByMonthYearIsPaid() 在 d:\XX\XX\XX\XX\XX\UnitTestKapital\Database \TestDataManagerOnetimeExpense.cs:第 154 行

但是这里是 LINQ 查询:

它肯定与日期有关,因为以下方法有效(基本上是相同的方法,没有日期的东西):

有趣的部分来了:几个月前我在 WinRT 应用程序中遇到了同样的问题。我设法以与上图相同的方式解决了这个问题。

我正在使用SQLite 3.7.16.2。LINQ 提供程序是sqlite-net

还有什么?Visual Studio 2012、C#、.Net 4.5。它是一个 WPF 应用程序。

编辑: 这是我的数据对象,它是一个简单的 POCO。PaymentDate 使用 DateTime.Today 进行初始化,因此永远不会为空。


Edit2 Gert Arnold 建议使用这项工作。据我了解,它正在工作并且具有比我的查询更好的性能。不过,我想知道上面的查询有什么问题。

0 投票
1 回答
176 浏览

android - 不创建保存数据库

我正在使用 monodroid 并通过 sqlite-net 库使用数据库。在一个应用程序事务中,所有数据都正确放置和从数据库中获取,但是当我下次部署应用程序时,我的数据库文件不存在。

我正在使用类似这些的方法

但我m testing same code in MonoTouch and WP7 application and it没事。

所以问题是:为什么数据库总是丢失?

0 投票
2 回答
1566 浏览

c# - sqlite-net like 语句崩溃

我有一个这样的 SQL 语句:

但我想用参数值向两边添加 % 。

但是当我尝试执行这个时我抛出了一个错误。任何想法为什么当我使用这样的 like 语句时它会崩溃?我在我的 sqlite 管理程序中使用相同的数据库运行了相同的查询,结果得到了应有的结果。

0 投票
2 回答
252 浏览

c# - sqlite 表列未显示

我正在为 wp8 使用 sqlite-net。我正在尝试在表中插入一行,但出现运行时错误,提示该列不存在。当我在该行之前放置一个断点并遍历数据库变量时,我可以看到表和列,所以我不确定发生了什么。这是代码:

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1177 浏览

c# - 在 Winrt 应用程序中使用 sqlite-net 时释放锁后未返回异步值

我最近遇到了这个非常奇怪的问题。最初我有这段代码

但是,事务完成运行后,控制权将永远不会交还给我的代码。我跟踪了程序,似乎在锁被释放后,程序流停止了。然后我切换到使用 SQLiteAsyncConnection 类中的 GetAsync 方法。基本上它做了同样的事情,所以我仍然在等待时被阻止。然后我删除了异步调用并使用了如下的同步 api:

只有这样,逻辑才能流回我的代码。但是我不知道为什么会这样。另一个问题是,对于这种简单的查询,如果我使用aysnc api而不是sync api,在查询时间方面有什么好处吗?如果没有,我会坚持使用同步版本。