[英]Connect to an older version of SQL Server Compact database without upgrading
[英]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.