我认为sqlite很简单,但它让我很难过。我只想创建一个应用程序,我可以使用ado.net实体数据类连接到sqlite数据库。
在运行Windows XP的虚拟计算机上测试应用程序时遇到此问题。当我部署它们时,应用程序在我当前的计算机上以及在我的笔记本电脑上运行正常
以下是虚拟计算机上发生的情况:
当我尝试连接时,我得到以下异常:
我知道有很多帖子都在讨论这个问题,大多数人说你需要下载.NET provider for Sqlite.
我已经安装了sqlite-netFx40-setup-bundle-x86-2010-1.0.79.0.exe,我遇到了同样的问题。我该怎么办?
我设法通过添加:
来建立连接<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
到我的app.config文件。
问题是现在我无法选择数据也不能将记录插入数据库。我现在尝试插入新记录时遇到的例外是:
在“System.Data.SQLite.SQLiteFactory”类型的商店提供程序实例上调用“GetService”方法后返回null。商店提供商可能无法正常运行。
答案 0 :(得分:32)
必须添加:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
到我的app配置文件。它现在看起来像:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
</configuration>
到我的程序exe所在的输出目录