web-dev-qa-db-ja.com

SQL Compact4.0はsdfファイルを開いたり読み取ったりできません

WPIを介してSQLCompact 4.0 CTP 2をインストールし、NUPackを使用してプロジェクトにSQLCE.EntityFrameworkを追加しました。コンパイルして完全に実行されますが、Visual Studio2010のサーバーエクスプローラーでSDFファイルを開くことができません。

試してみると、常に次のメッセージが表示されます。


Microsoft Visual Studio

これは有効なSQLServer Compactデータベースファイルではないか、このファイルバージョンは現在のSQL Server CompactEngineではサポートされていません。

OK

私はすでにすべてをアンインストールして再インストールしようとしました。

SQL Server 2008 R2 ManagementStudioでも開くことはできません。

助けてください!!

23
Andre Vianna

これをインストールすると(SQL Server Compact4.0用のVisualStudio 2010 SP1ツール)、この問題が完全に修正されました: http://go.Microsoft.com/fwlink/?LinkId=212219

このスレッドからErikEJへの小道具: http://forums.asp.net/t/1811963.aspx/1

12
user74754

「Movies.sdf」ファイルをダブルクリックしてテーブルやその他の情報を確認するように言われたときに、asp.netが提供するMVC3(MvcMovie)のチュートリアルをフォローアップしようとしたときに同じ問題が発生しました。

実際には、解決策は要求のすぐ下にあります。

注Movies.sdfをダブルクリックしたときにエラーが発生した場合は、インストール済みであることを確認してください SQL Server Compact 4. (ランタイム+ツールのサポート)。 (ソフトウェアへのリンクについては、このチュートリアルシリーズのパート1の前提条件のリストを参照してください。)今すぐリリースをインストールする場合は、Visual WebDeveloperを閉じて再度開く必要があります。

Sql Server Compact 4.0(ランタイム+ツールサポート)をインストールすると、問題は解決します。

2
Daniel Yu

この質問は少し古いです。しかし、答えは、VS2010SP1にはSQLCE3.5とSQLCE3.5 x64のみがあり、SQL Compact4.0はないということだと思います。 SQL製品はStudioに付属しています。 Studio 2010の配布に含まれているSQLCE4.0は、2012年にはまだありません(私はExpressエディションを使用しています)。

このバージョンのパッケージ化は直接的な根本原因ではありませんが、異なるバージョンには追加の作業が必要になるという単なる手がかりです。

修正には、VisualStudioで使用される.NETFrameworkへの「データプロバイダー」の登録が含まれる必要があります。 c:\ Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config内の「DbProviderFactories」を確認してください。このセクションでは、.NETおよびStudioで使用できるデータプロバイダーについて説明します。

そこに予期しないエントリがある場合は、フレームワークを修復するか、プロバイダーを手動で登録してみてください。そのためには、いくつかの低レベルの登録ツールが必要になります。 asp.netプロバイダーの場合はaspnet_regsql.exeなどがありますが、SQLCE自体の場合も同様のものが必要です。

<system.data>
    <DbProviderFactories>
       <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.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>

壊れたStudioと動作中のアプリの違いは、どちらも同じフレームワークを使用していますが、構成に異なるプロバイダーがあることです。 (または、アプリは他の手法を使用してDLLそしてSDFを開く)

回答:SP1以降、Studio 2010 SP1でSQLCE4.0を使用することが公式に可能です(リンクを提供してくれたNathan Fisherに感謝します http://support.Microsoft.com/kb/983509

0
user215054