问题标签 [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.
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 Content
值MyAddData()
不是值;相反,这里传递了一个值为 的变量05-29-2020
。
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)引用同一个库时,我在如下所示的代码行中收到以下错误:
备注:
- 我正在使用
VS2019
,Windows20 Pro
, Microsoft.Data.Sqlite和来自同一链接的以下示例。 - 完全相同的代码在
WPF
应用程序上运行良好。 - 我也尝试安装
SQLitePCLRaw.core
包(如错误中所述)但仍然是同样的错误。虽然,我认为我不应该安装这个包,因为我不必用WPF
app. - 文件的相同副本
MySQLiteDb.db
驻留在bin\Debug
文件夹VSTO
以及WPF
文件夹中。所以,这应该不是问题
错误:
代码[错误发生在行using (SqliteConnection db = ....)
:
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
工作正常(显然类名的大小写略有不同,等等)。
谢谢!
c# - 在 Dot Net 4.6.1 中运行测试项目时,SQLitePCLRaw 抛出 TypeInitializationException
我有一个针对net452
、net461
和的测试项目netcoreapp20
。一切运行良好net452
,netcoreapp20
但是,当我运行时,net461
我得到了System.TypeInitializationException
这是堆栈跟踪
我检查了我的测试项目的项目输出,所有的 DLL 都在那里以及SQLite.Interop.dll
in./x86/
和./x64/
顺便说一下我的主要项目,我正在使用 Microsoft.Data.Sqlite 并且我的目标是net40
, net461
, 和netstandard20
forms - 您在连接字符串中指定了密码,但您使用的本机 SQLite 库不支持加密
我在 Xamarin Forms Android 应用程序的 Sqlite 连接字符串中设置 Password 属性时遇到问题。它在 Xamarin Forms iOS 中运行良好。我使用了以下`
` 在此处输入图像描述 您在连接字符串中指定了密码,但您使用的本机 SQLite 库不支持加密。
我在我的 Xamarin Forms 应用程序上使用 Microsoft.Data.Sqlite 3.1.5 nuget 包。
任何帮助,将不胜感激。
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, Func
1 个编译器)在 Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](对象 cacheKey,Func1 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.EntityQueryable
1.GetAsyncEnumerator(CancellationToken cancelToken)在 System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable1.GetA syncEnumerator() at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsy nc[TSource](IQueryable
1 源,CancellationToken cancelToken)
这对我来说没有多大意义,因为应该应用转换:
值转换器允许在读取或写入数据库时转换属性值。这种转换可以是从一个值到另一个相同类型的值(例如,加密字符串)或从一种类型的值到另一种类型的值(例如,将枚举值与数据库中的字符串进行转换。)
除非在“查询”时“阅读”不适用,如果确实如此,想知道是否有任何解决方法?有什么机制可以扩展表达式的解析方式?
顺便说一句,下面的查询工作得很好:
c# - 确保每个线程只有一个 SQLite 连接
我正在使用Microsoft.Data.Sqlite.Core
withSQLitePCLRaw.lib.e_sqlcipher
访问加密的 SQLite 数据库。我需要解决一些挑战:
- 我必须确保同一个实例
Microsoft.Data.Sqlite.SqliteConnection
不在多个线程之间共享(SQLite 连接不是线程安全的); - 打开 SQLCipher 加密数据库的成本很高,因此我必须将发生的次数限制在最低限度。
我想出了解决方案,但我不确定它是如何证明失败的,所以我希望有人能在其中戳一些漏洞。
wpf - .NET 5 从单个文件发布中排除了一些库
我对使用 .NET 5 发布的单个文件可执行文件有一点问题。
事实上,它不包含可执行文件中的所有库,而是生成多个文件。
在我的示例中,我使用了 SQLite 库(Microsoft.Data.Sqlite),编译后,不包括e_sqlite3.dll 。
相反,在输出文件夹中,它会生成两个文件(不包括 pdb 文件):