4

我正在使用ErikEJ的Visual Studio的SQL Server Compact/SQLite工具箱。環境是Windows 7 64位與Visual Studio 2013.5SQL Server Compact 4.0 DbProvider - 否

我在例如,沿着下面的博客http://erikej.blogspot.dk/2013/11/entity-framework-6-sql-server-compact-4_25.html但是當我到達

「...連接到數據庫文件在項目文件夾:」,

我右鍵點擊「添加的SQL Server Compact/SQLite的連接」,在盒子裏,但在底部是紅色

「不能保存此連接使用EF6工具的使用,確保在SQL Server緊湊型DbProvider已安裝,並可能重新啓動Visual Studio「

我回去,然後點擊關於按鈕,並得到

SQL Server Compact 4.0 in GAC - Yes - 4.0.8482.1 
SQL Server Conpact 4.0 DbProvider - No 

SQL Server Compact 4.0 DDEX provider - No 
SQL Server Compact 4.0 Simple DDEX provider - Yes 
SQL Server Compact 4.0 Engine Test: PASS! 

我已經卸載SQL Server精簡版和SQL Server精簡工具箱並重新安裝兩個,但我仍然有同樣的錯誤。

我想知道如何獲得SQL Server Compact 4.0 DbProvider是嗎?

感謝

編輯 我已經添加machine.config中的相關部分可能包含無效條目的細節。

<system.data> 
    <DbProviderFactories> 
     <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
     <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
     <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
     <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
     <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories> 
</system.data> 

我檢查了上述反對的例子在這裏https://developer.teradata.com/blog/netfx/2010/12/dbproviderfactories-demystified,我看不出什麼明顯錯誤的那部分。

啊哈。我在找錯地方。在C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Config中我有

<system.data> 
    <DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories> 
</system.data> 

嗯...其他的人失蹤。

+1

刪除並重新安裝的SQL Server Compact 4.0,以更新machine.config文件 – ErikEJ

+0

謝謝爲您的快速反應! 我關閉了VS2013,去控制面板卸載「Microsoft SQL Server Compact 4.0 x64 ENU」。安裝「Microsoft SQL Server Compact 4.0 x64 ENU」。打開VS2013。 SQL Server Compact Toolbox仍然說DbProvider爲 我只是要去google machine.config! – Alan

+0

您的x86 machine.config可能在dbproviderfactories部分有無效條目 – ErikEJ

回答

4

好的,我終於設法通過了這一點。

我卸載了Visual Studio 2013和SQL Server Express。我在這裏使用https://dba.stackexchange.com/questions/68373/how-to-uninstall-sql-server-2012-not-showing-in-control-panels-programs-and-fe列出了在SQL Server的程序,這裏How to completely uninstall Visual Studio 2010?使用

D:\vs_community.exe /uninstall /force 

我之前就做到了這一點,並重新安裝VS2013.5之前做了這一點,但我想出了這促使這個問題上面的錯誤。因此,從上述頁面的進一步建議,我做了

wmic product where "name like 'microsoft visual studio%'" call uninstall /nointeractive 
wmic product where "name like 'microsoft sql server%'" call uninstall /nointeractive 

這清除了以前留下來的東西。

我也使用Revo Uninstaller卸載並使用它來掃描機器上任何剩餘的痕跡。這也拾起了遺留下來的殘餘物。

畢竟,我再次安裝了VS2013.5,並且我能夠讓SQL Server Compact Toolbox正確識別數據庫,沒有錯誤。我希望這能幫助遇到同樣問題的其他人。

0

我知道,這是一個古老的追求,但可能是這有助於某人。

我有類似的問題,我

無法保存此連接使用EF6工具使用,請確保安裝了SQL Server精簡DbProvider,並可能重新啓動Visual 工作室

因此無法將DataGrid組件連接到數據庫。在這種情況下,只是不忘記很酷按鈕註冊DDEX提供商ErikEJ提供(非常感謝他)

enter image description here

+1

與此相關的一些問題在最新版本的工具箱中得到修復 – ErikEJ

相關問題