Windows 7 の SQLServerCE SDF ファイルで別のユーザーと同じ問題を抱えているようですが、そのスレッドからのアドバイスは私の問題を解決していません。
これは、SQL Server CE v3.1 (DLL バージョン 3.0.5300.0) に関連しています。これにより、Windows XP 32 ビット マシンでユーティリティを使用して SDF ファイルをビルドできますが、両方の Win 7 Dev マシンで同じコンパイル済みコードと DLL を使用します。 & スタンドアロンの Win 8 マシンでは、デバイス上でデータベースを正しくクエリできません。
例を挙げます。
SELECT Name FROM USERS WHERE Name = 'Joey'
DB から 1 つの結果を返す必要があります。Windows XP マシンでコンパイルされた場合は動作しますが、Windows 7/8 マシンでコンパイルされた場合は読み取られず、結果セットは 0 です。
すべてのクエリが影響を受けるわけではないため、これは奇妙な動作です。同じテーブルが別の where 句でクエリされた場合、結果は異なります。VS 2005 でファイルを直接チェックするか、.SDF ファイルを読み取るために作成したユーティリティを使用して、クエリが Windows 7/8 の両方で正常に動作することを確認できます。
これは、SDF ファイルが Windows 6.5 デバイスにコピーされた場合にのみ問題になるようです。これには、ファイル SQL Server CE v3.1 (DLL バージョン 3.0.5300.0) を構築したアプリケーションと同じ DLL があります。
確認したところ、x64 / x32 アーキテクチャに依存していないことがわかりました。これは、32 ビットまたは 64 ビットの Win 7 または Win XP マシンでビルドした場合と同じ結果であるためです。
前回の投稿から、MS からの簡潔だが役立つ情報を見ました ( http://blogs.msdn.com/b/sqlservercompact/archive/2009/04/01/after-moving-the-database-from-one-platform -to-other-the-first-sqlceconnection-open-takes-more-time.aspx )
これに対する解決策を探していますが、Visual Studio のデバイス (モジュールなど) ウィンドウで実行されている DLL バージョンを確認する方法など、追加情報があれば役立ちます。