连接到CE数据库的问题

时间:2011-01-21 12:02:26

标签: c# .net sql sql-server-2008 .net-4.0

我在尝试连接到CompactEdiction数据库文件时遇到了无法在我的客户端应用程序上找到提供程序的错误。当我在安装了sql server 2008的dev机器上测试这个应用程序时,一切正常。

安装了.net(3.5和4.0)和sp3(windows xp)。你知道我错过了什么吗?提供者存在问题......

在应用程序目录中有复制的文件:

System.Data.SqlServerCe.dll
System.Data.SqlServerCe.Entity.dll
sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll

在app config中我有这样一个条目:

<configuration>
    <system.data>
            <DbProviderFactories>
                <remove invariant="System.Data.SqlServerCe.3.5"/>
                <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral"/>
            </DbProviderFactories>
        </system.data>

错误是:

 error 0004: Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact

和服务器不应该安装,这就是要求

当appConfig中没有条目时,错误信息为:

 The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
   at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
   at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)

在连接字符串提供程序中:

provider=System.Data.SqlServerCe.3.5

1 个答案:

答案 0 :(得分:0)

您确定没有更多需要复制的SQL Compact DLL吗?

还有一个新版本的SQL Compact out,4.0我认为 - 也许它会有助于升级到那个版本。这是一个很长的镜头,但你永远不会知道;)

修改 看看这个网站:http://msdn.microsoft.com/en-us/library/aa983326.aspx它说明有七个dll文件需要复制。