2011-01-21 154 views
0

我试图连接到CompactEdiction数据库文件时出现错误,提示符无法在我的客户端应用程序中找到。当我在安装了sql server 2008的开发机器上测试这个应用时,一切都很好。连接到CE数据库的问题

安装了.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 

在应用程序配置我有这样的条目:

<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 
+0

要从头开始:连接字符串中列出了哪个提供程序? – 2011-01-21 12:20:10

+0

我编辑了我的问题来回答你的评论:) – gruber 2011-01-21 12:38:41

回答

0

你确保没有更多的SQL Compact需要复制的DLL?

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

编辑: 看看这个网站:http://msdn.microsoft.com/en-us/library/aa983326.aspx它指出,有就是七个dll文件复制过来。