1

接続を開こうとするとエラーが発生します。DB.sdf ファイルがアプリケーション フォルダにある

ここにdb.sdfを保存しました

{

string ConnectionString=  new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + @"\APP_DATA\DB.sdf";


public int ExecuteNonQuery(string query){

        int res = -1;
        try
        {                
            using (SqlCeConnection conn = new SqlCeConnection(ConnectionString))
            {
                SqlCeCommand command = new SqlCeCommand(query, conn);
                command.CommandType = CommandType.Text;
                conn.Open();
                res = command.ExecuteNonQuery();
            }
        }
        catch (Exception e)
        {
            new Logs().TraceProcessError(e.Message);
        }
        return res;
    }

}

エラー:

古いバージョンの SQL Server Compact Edition データベースにアクセスしようとしています。これが SQL Server CE 1.0 または 2.0 データベースの場合は、upgrade.exe を実行します。これが SQL Server Compact Edition 3.0 以降のデータベースである場合は、Compact / Repair を実行します。[ DB バージョン = 3505053、要求バージョン = 3004180、ファイル名 = D:\DB.sdf ]"

SQL Server Compact 3.5、VS2010、SQLServer 2008R2 を使用しています。

助けてください。ありがとう。

4

3 に答える 3

0

ここから SQL Server コンパクト ツールボックスをダウンロードします。

https://sqlcetoolbox.codeplex.com/

データベース ファイルに対して実行し、バージョン番号 (例: 3.5) を書き留めます。

Visual Studio に移動し、リソースの下の System.Data.SqlServerCe をクリックしてから、プロパティの下をクリックします。プロパティで、バージョン番号を書き留めます (例: 3.0)

ライブラリのバージョン番号が古い場合。SQL Server Compact インストーラーをダウンロードして実行します。 http://www.microsoft.com/en-IE/download/details.aspx?id=12264

インストールしたら。プロジェクトから System.Data.SqlServerCe および System.Data.SqlClient への参照を削除し、同等の 3.5 バージョンを追加します。私のシステムで見つかりました。

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\System.Data.SqlServerCe.dll

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\Client\System.Data.SqlClient.dll

きれいにしてから再構築します。コメントで述べたように、これはVS 2008のある時点で元に戻されたため、再度エラーが発生した場合は、パスが上記に移動していることを再確認してください。

于 2014-05-07T10:16:21.550 に答える