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

C# 您正在尝试访问较旧版本的SQL Server Compact Edition数据库,c#,sql,sql-server-ce,compact-database,C#,Sql,Sql Server Ce,Compact 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){ i

我试图打开连接时出错。我的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 版本数据库。如果这是SQL Server CE 1.0或2.0数据库,请运行 升级.exe。如果这是SQL Server Compact Edition 3.0或更高版本 数据库,运行压缩/修复。[Db版本=3505053,已请求 版本=3004180,文件名=D:\DB.sdf]“

我使用的是SQLServerCompact3.5、VS2010和SQLServer2008R2

请帮忙。
谢谢。

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

您可以参考下面的链接吗:


希望对您有所帮助!!

从这里下载SQL Server compact工具箱

对数据库文件运行它,并记下版本号(如3.5)

进入visual studio,单击参考资料下的System.Data.SqlServerCe,然后单击属性下的。在属性中记下版本号(如3.0)

如果库版本号较旧,请下载SQL Server Compact安装程序并运行。

安装后。从项目中删除对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上的某个点上自行取消ID,因此如果再次出现错误,请仔细检查路径是否指向上面的路径。

是否尝试按照提供的指导进行操作?将数据库文件复制到dekstop,并使用我的独立SQL Server Compact Toolbxo检测文件版本,我会agine it是2.0,您需要升级或重新开始(升级非常复杂,必须在设备上进行)我也有同样的问题。我运行了SQL Server Compact Toolbox(非常有用)并检测到数据库为3.5。工具箱和MS SQL Studio可以读取并与数据库交互。错误中的版本号与上面的版本号完全相同。我发现我使用的是一个3.5 SQL compact文件和一个3.0 SQL compact库。让我感到不安的是,出于某种原因,我会删除对3.0库的引用,然后将其替换为3.5版本。但不知何故它又回来了。感谢@Daan**我的SQL Server CE数据库版本和System.Data.SqlServerCe.DLL版本,两者都是相同的,即3.5.5692.0,但显示了相同的错误。我正在使用*vs2010和64位操作系统,我安装并尝试了System.Data.SqlServerCe.DLL,用于32位和64位系统。实际上我的要求是我的意思是,我必须使用WPF/windows应用程序准备**SQL Server CE数据库和数据*,并将其转储到windows设备。但我无法在应用程序中打开数据库连接。