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

您能否参考以下链接:

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/058357a2-e8a2-447e-82dc-df4466542855/trying-to-open-a-sql-compact-db-in-vb2005-created- it-in-vb2008?forum=sqlce

希望能帮助到你..!!

于 2013-12-06T08:26:02.843 回答
0

确保您 (1) 知道您的数据库是哪个版本的 SQL Server CE,并且 (2) 您System.Data.SqlServerCe.DLL从项目中引用了与该版本的 SQL CE 匹配的适当版本。

于 2013-12-06T08:17:01.680 回答
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 回答