问题标签 [microsoft.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 投票
0 回答
71 浏览

c# - 为什么此 C# 代码将数据插入 SQLite 表的错误列?

注意:非常感谢用户@David。问题已解决。那是我的错误。请参阅下面的更新部分。

环境Microsoft.Data.Sqlite,VS2019 v16.6.0,Windows10 Pro v1903

问题:为什么下面的代码将值"05-29-2020"插入到最后一列DocContent?我需要它来TestContent代替。我在这里可能缺少什么以及如何解决?

备注:在按钮上单击MyAddData()调用AddData()

SQLite 表:从上述代码插入的数据

备注DocId是一个自增主键标识列

更新

我很抱歉。我站得更正了。正如用户@David所说:

可能是我们正在查看的代码上下文之外的各种事情。

方法中的Test ContentMyAddData()不是值;相反,这里传递了一个值为 的变量05-29-2020

在此处输入图像描述

0 投票
1 回答
87 浏览

c# - 在 WPF 上工作。但在 VSTO 项目中,抛出错误:无法加载文件或程序集 'SQLitePCLRaw.core,版本 = 2.0.2.669,文化 = 中性

我创建了一个.NET Standard 2.0类库项目,在被WPF App (.NET Framework 4.8)项目引用时可以正常工作。但是,当MS Office VSTO 项目(也使用 .NET Framework 4.8)引用同一个库时,我在如下所示的代码行中收到以下错误:

备注

  1. 我正在使用VS2019, Windows20 Pro, Microsoft.Data.Sqlite和来自同一链接的以下示例。
  2. 完全相同的代码在WPF应用程序上运行良好。
  3. 我也尝试安装SQLitePCLRaw.core包(如错误中所述)但仍然是同样的错误。虽然,我认为我不应该安装这个包,因为我不必用WPFapp.
  4. 文件的相同副本MySQLiteDb.db驻留在bin\Debug文件夹VSTO以及WPF文件夹中。所以,这应该不是问题

错误

代码[错误发生在行using (SqliteConnection db = ....)

0 投票
1 回答
423 浏览

c# - Sqlite 元数据查询因 Microsoft.Data.Sqlite 失败,可与 System.Data.SQLite 一起使用

我有一个直接取自 Microsoft 文档的简单查询(请参阅https://docs.microsoft.com/en-us/dotnet/standard/data/sqlite/metadata),但失败了。根据文档,查询sqlite_master应该按预期工作,但它们会引发异常,即使在我创建数据库并创建表之后也是如此。

这是突出显示该问题的孤立代码:

控制台输出包括异常(注意第一行是执行第一个查询返回的行数的 Console.WriteLine,即0)...

请注意,这metadataQuery是直接来自 Microsoft 的网站(上面的链接)。

当我使用 DB Browser for Sqlite(或类似的)执行相同的查询时,它工作正常,并且当使用相同的代码时System.Data.SQLite工作正常(显然类名的大小写略有不同,等等)。

谢谢!

0 投票
1 回答
43 浏览

c# - 在 Dot Net 4.6.1 中运行测试项目时,SQLitePCLRaw 抛出 TypeInitializationException

我有一个针对net452net461和的测试项目netcoreapp20。一切运行良好net452netcoreapp20但是,当我运行时,net461我得到了System.TypeInitializationException

这是堆栈跟踪

我检查了我的测试项目的项目输出,所有的 DLL 都在那里以及SQLite.Interop.dllin./x86/./x64/

顺便说一下我的主要项目,我正在使用 Microsoft.Data.Sqlite 并且我的目标是net40, net461, 和netstandard20

0 投票
1 回答
1374 浏览

forms - 您在连接字符串中指定了密码,但您使用的本机 SQLite 库不支持加密

我在 Xamarin Forms Android 应用程序的 Sqlite 连接字符串中设置 Password 属性时遇到问题。它在 Xamarin Forms iOS 中运行良好。我使用了以下`

` 在此处输入图像描述 您在连接字符串中指定了密码,但您使用的本机 SQLite 库不支持加密。

我在我的 Xamarin Forms 应用程序上使用 Microsoft.Data.Sqlite 3.1.5 nuget 包。

任何帮助,将不胜感激。

0 投票
0 回答
53 浏览

c# - 使用 Contains 查询时未调用 C# 中 Entity Framework Core 的注册转换?任何解决方法?

我试图弄清楚为什么在请求中需要 aSqliteDbContext 时不考虑为我的下面定义的转换:Contains

我收到此错误:

System.InvalidOperationException:LINQ 表达式 'DbSet()
.Where(s => s.NullableText.ToLower().Contains("d") || s.NonNullableText.ToLower().Contains("d") || s.FSharpOptionText
.DefaultFromOption().ToLower().Contains("d"))' 无法翻译。

以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101038

在 Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVi sitor.g__CheckTranslated|15_0(ShapedQueryExpression 已翻译,<>c__DisplayClass15_0& )
在 Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVi sitor.VisitMethodCall(MethodCallExpression methodCallExpression)
在 System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor访问者)
在 System.Linq.Expressions.ExpressionVisitor.Visit(Expression node) 在 Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVi sitor.VisitMethodCall(MethodCallExpression methodCallExpression) 在 System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor 访问者) 在 System.Linq.Expressions .ExpressionVisitor.Visit(Expression node) at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExe cutor[TResult](Expression query) at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async) at Microsoft。 Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayCla ss12_0 上的 EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCor e[TResult](IDatabase 数据库,表达式查询,IModel 模型,布尔异步)1.<ExecuteAsync>b__0() at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQu eryCore[TFunc](Object cacheKey, Func1 个编译器)在 Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](对象 cacheKey,Func 1 compiler) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TR esult](Expression query, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAs ync[TResult](Expression expression, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable1.GetAsyncEnumerator(CancellationToken cancelToken)在 System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable 1.GetA syncEnumerator() at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsy nc[TSource](IQueryable1 源,CancellationToken cancelToken)

这对我来说没有多大意义,因为应该应用转换

值转换器允许在读取或写入数据库时​​转换属性值。这种转换可以是从一个值到另一个相同类型的值(例如,加密字符串)或从一种类型的值到另一种类型的值(例如,将枚举值与数据库中的字符串进行转换。)

除非在“查询”时“阅读”不适用,如果确实如此,想知道是否有任何解决方法?有什么机制可以扩展表达式的解析方式?


顺便说一句,下面的查询工作得很好:

0 投票
2 回答
263 浏览

c# - 确保每个线程只有一个 SQLite 连接

我正在使用Microsoft.Data.Sqlite.CorewithSQLitePCLRaw.lib.e_sqlcipher访问加密的 SQLite 数据库。我需要解决一些挑战:

  • 我必须确保同一个实例Microsoft.Data.Sqlite.SqliteConnection不在多个线程之间共享(SQLite 连接不是线程安全的);
  • 打开 SQLCipher 加密数据库的成本很高,因此我必须将发生的次数限制在最低限度。

我想出了解决方案,但我不确定它是如何证明失败的,所以我希望有人能在其中戳一些漏洞。

0 投票
1 回答
1514 浏览

wpf - .NET 5 从单个文件发布中排除了一些库

我对使用 .NET 5 发布的单个文件可执行文件有一点问题。
事实上,它不包含可执行文件中的所有库,而是生成多个文件。

在我的示例中,我使用了 SQLite 库(Microsoft.Data.Sqlite),编译后,不包括e_sqlite3.dll 。
相反,在输出文件夹中,它会生成两个文件(不包括 pdb 文件):

0 投票
1 回答
141 浏览

sqlite - 如何在 UWP 应用程序中构建我的 SQLite 连接字符串?

在我的 Windows 窗体应用程序中,我能够像这样构建我的 SQLite 连接字符串(在通过 Add > Existing Item 将 .db 文件添加到我的项目之后):

所以我在我的 UWP 项目中尝试了同样的事情,代码如下:

...但是没有“StartupPath”属性。我应该改用什么?

这些是 Application 对象的可用成员:

在此处输入图像描述

我应该使用“当前”吗?

更新

作为对彼得的回答的回应,并作为我对该答案的评论的补充,这是我现在拥有的代码:

...我至少接近正确吗?

0 投票
0 回答
50 浏览

sqlite - 为什么我的 SQLite 数据库表在预期位置时找不到?

我收到了这个错误消息:

在此处输入图像描述

...使用此代码:

我的 connStr 路径是:

数据源=C:\Users\bclay\source\repos\CartographerYou\CartographerYou\bin\x86\Debug\AppX\Cartographer.db

...您可以看到数据库和表确实存在于预期的位置:

在此处输入图像描述

编译时我也收到此警告消息,我不明白,但这可能是问题的一部分(或全部?):

在此处输入图像描述