问题标签 [system.data.sqlite]

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 回答
2264 浏览

sql - 使用 sqlite3 计算日期

我正在尝试计算日期之间的时间跨度。如果日期使用原生 sqlite3 格式 'YYYY-dd-mm' 格式化,我对此没有任何问题

如果日期格式不同,例如“dd-mm-YYYY”,我该怎么做

我尝试了以下但没有成功。

--选择两天之间的日子;如果日期时间字符串的格式为 YYYY-dd-mm,则此方法有效

--我尝试了dd-mm-YYYY格式的日期,但它似乎不起作用 --似乎无法指定日期格式。

0 投票
1 回答
11566 浏览

c# - BeginTransaction 的 SQLite.Net 问题

我正在尝试使用 System.Data.Sqlite 库,并且我正在关注有关优化插入的文档,因此我直接从文档中复制了此代码:

现在,我在此之前通过使用初始化我的连接

我有一个名为 blah 的数据库,其中包含正确的表和值。

问题是当我运行此代码时,它显示“由于对象的当前状态,操作无效”

我已经尝试多次更改代码,它仍然指向 BeginTransaction。是什么赋予了?

0 投票
17 回答
183076 浏览

c# - 在 .NET 4.0 项目中引用 .NET 2.0 混合模式程序集需要哪些“附加配置”?

我有一个项目,我想在其中使用一些 .NET 4.0 功能,但核心要求是我可以使用针对 2.X 编译的 System.Data.SQLite 框架。我看到提到这是可能的,例如此处接受的答案,但我不知道如何实际实现这一点。

当我在引用 2.X 程序集时尝试运行我的 4.0 项目时,我得到:

混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。

需要什么“附加配置”?

0 投票
2 回答
4112 浏览

c# - 在 SQLite 中使用 SELECT 命令列出附加的数据库

是否有一个 SELECT 命令可以列出所有附加的数据库,类似于 sqlite3 中可用的 .database 命令?

0 投票
1 回答
3257 浏览

c# - 使用 SQLiteDataReader 的异常

我正在制作一个自定义 SQLite 包装器。这意味着允许与数据库的持久连接。但是,两次调用此函数时收到异常。

在执行命令或尝试打开数据库之前,我使用上述函数检查数据库当前是否打开。我第一次执行该函数时,它执行没有问题。之后reader = this.Command.ExecuteReader()抛出异常

0 投票
1 回答
645 浏览

.net - IIS 7.5 拒绝加载 64 位程序集 - 可能是 CAS 问题?

我刚刚下载了Orchard CMS,在 VS2008 中打开它,然后按 F5:一切正常。

然后我在 IIS 7.5 中创建了一个网站,并将其指向 Web 项目的目录并正确设置权限(我希望如此)。我按照此处的建议下载了 64 位版本 System.Data.SQLite:Orchard Work Item 14798和此处:SO: Could not load file or assembly 'System.Data.SQLite'

该站点在完全信任下运行。当我将浏览器指向通过 IIS 运行的站点时,我得到

无法加载文件或程序集 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 或其依赖项之一。未能授予最低权限请求。

我对代码访问安全性知之甚少(如果这甚至在这里起作用),所以我在这里不知所措。我做错了什么/不理解/没有看到?我如何提供适当的权限以及向谁/什么提供?

有没有希望将此应用程序部署到只允许我在中等信任中运行的主机上?

任何帮助、指示或建议将不胜感激。谢谢。

注意:问题不是为什么这最初在通过 Cassini 运行时有效。该问题的答案包含在上面提到的 SO 问题的答案中。

0 投票
1 回答
783 浏览

sqlite - 在 SQLite 中更新多个相关表

只是一些背景,抱歉啰嗦了这么多。

我正在使用 System.Data.SQLite ADO.net 适配器创建本地 sqlite 数据库,这将是访问数据库的唯一进程,因此我无需担心并发性。

我正在从各种来源构建数据库,并且不想使用数据集或数据适配器或类似的东西在内存中构建这一切。我想使用 SQL (DdCommands) 来做到这一点。我不太擅长 SQL 和 sqlite 中的完整菜鸟。我基本上使用 sqlite 作为本地数据库/保存文件结构。

数据库有很多相关的表,数据与 People 或 Regions 或 Districts 无关,但打个简单的比喻,想象一下:

具有自增 RegionID、RegionName 列和各种可选列的区域表。

具有自动递增 DistrictID、DistrictName、RegionId 和各种可选列的区域表

具有自动递增 PersonID、PersonName、DistrictID 和各种可选列的人员表

所以我得到了一些代表 RegionName、DistrictName、PersonName 和其他 Person 相关数据的数据。此时可能会或可能不会创建区域、地区和/或个人。

再一次,不是最伟大的,我的想法是这样的:

  • 检查 Region 是否存在,如果存在则获取 RegionID
  • 否则创建它并获取 RegionID
  • 检查 District 是否存在,如果存在则获取 DistrictID
  • 否则创建它从上面添加 RegionID 并获取 DistrictID
  • 检查 Person 是否存在,如果存在则获取 PersonID
  • 否则创建它从上面添加 DistrictID 并获取 PersonID
  • 用其余数据更新 Person。

在 MS SQL Server 中,我将创建一个存储过程来处理所有这些。

我能看到用 sqlite 做到这一点的唯一方法是很多命令。所以我确定我没有得到这个。我已经花了几个小时在各个网站上四处寻找,但只是不觉得我在走正确的道路。任何建议将不胜感激。

0 投票
1 回答
2789 浏览

linq - “(”附近的 SQLiteException 和 SQLite 错误:Subsonic ActiveRecord 的语法错误

我在使用 LiNQPad 和在我的项目中使用 Subsonic 3.0.xw/ActiveRecord 的以下 LiNQ 查询中遇到了一个有趣的错误,我想与遇到它的其他人分享错误和解决方案。

下面的 linq 语句旨在将 tblSystemsValues 集合中的条目分组到相应的系统中,然后提取具有最高 ID 的系统。

就其本身而言,用于分组到 groupedT 的子查询可以完美地工作,并且将 KeySafetyFunctions 与其在 tblSystems 中的系统匹配的查询也可以完美地独立工作。

但是,当尝试在 linqpad 或我的项目中运行已完成的查询时,我一直遇到SQLiteException SQLite Error Near "("

首先,我尝试在我的项目中拆分查询,因为我知道我可以在必要时对结果运行一个 foreach 循环。但是,我继续收到同样的异常!

我最终将查询分成三个独立的部分,然后我才意识到是查询的延迟执行让我很生气。然后很明显,在下面的 myProtectedSystem 查询之后添加.ToList()说明符是在组合和优化查询之后避免延迟执行的关键,并且尽管我遇到了 SQLite 驱动程序的问题,但能够获得我的结果。

0 投票
3 回答
20823 浏览

c# - System.Data.SQLite 具有多个值的参数化查询?

我正在尝试使用参数化查询进行批量删除。目前,我有以下代码:

但是,参数的值似乎每次都被覆盖,我最终只是删除了最后一个中心。使用值列表执行参数化查询的正确方法是什么?

0 投票
2 回答
6501 浏览

database - SQLite 是否支持跨多个数据库的事务?

我进行了一些搜索并阅读了 SQLite 网站上的常见问题解答,但没有找到我问题的答案。

很可能是我的数据库方法存在缺陷,但目前,我想将我的数据存储在多个 SQLite3 数据库中,这意味着单独的文件。我非常担心由于我的应用程序可能崩溃或在更改表中的数据过程中断电而导致的数据损坏。

为了保证数据的完整性,我基本上需要这样做:

这受 SQLite 支持吗?另外,我正在使用 sqlite.net,特别是基于 SQLite 3.6.23.1 的最新版本。

更新

还有一个问题——这是人们通常会添加到他们的单元测试中的东西吗?我总是对数据库进行单元测试,但从未遇到过这样的案例。如果是这样,你会怎么做?这几乎就像您必须将另一个参数传递给 bool test_transaction 之类的方法,如果为真,则在数据库访问之间抛出异常。然后在调用后进行测试以确保第一组数据没有进入另一个数据库。但也许这是 SQLite 测试涵盖的内容,应该出现在我的测试用例中。