繁体   English   中英

您正在尝试访问SQL Server Compact Edition数据库的旧版本

[英]You are trying to access an older version of a SQL Server Compact Edition database

尝试打开连接时出现错误。 我的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或更高版本的数据库,请运行“压缩/修复”。 [Db版本= 3505053,请求的版本= 3004180,文件名= D:\\ DB.sdf]“

我正在使用SQL Server Compact 3.5,VS2010,SQLServer 2008R2。

请帮忙。 谢谢。

确保您(1)知道数据库是哪个版本的SQL Server CE,以及​​(2)从与该SQL CE版本匹配的项目中引用了相应的System.Data.SqlServerCe.DLL

从此处下载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上的某个时候本身就很不安全,因此如果再次遇到错误,请再次检查路径是否指向上面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM