如何将我的Sql Server CE 3.5 sdf数据库升级到Sql Server CE 4.0?

22
我需要将我的SqlCE3.5数据库更新为4.0版本。当我尝试使用新的CE4.0连接提供程序访问我的3.5 sdf/数据库时,出现以下错误信息:System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException: 该数据库文件是由早期版本的SQL Server Compact创建的,请使用SqlCeEngine.Upgrade ()方法进行升级。请问有人知道我该如何做吗?显然,我需要以编程方式完成这个任务,但不确定我应该做什么,或者我需要添加哪些引用等。谢谢!

1
这不是很明显吗?调用 SqlCeEngine.Upgrade()!还是有问题吗?同时注意不同版本之间的不兼容性。 - leppie
当我尝试运行一些代码时,它无法编译。 - Pure.Krome
2
请查看我的博客文章,获取示例代码:http://erikej.blogspot.com/2010/08/how-to-upgrade-version-3x-database-file.html - ErikEJ
@ErikEJ 你的博客太棒了。简单又美味的蛋糕,快来尝一口吧。 - Maheep
这个升级方案能从2.0升级到4.0吗?我维护一个使用2.0版本的中古时期应用程序。我希望至少能够在实用程序中查看数据,以便轻松查看这些表中的内容。 - B. Clay Shannon-B. Crow Raven
显示剩余2条评论
2个回答

14

调用System.Data.SqlServerCe.SqlCeEngine.Upgrade方法。请参考包含示例代码的MSDN


10
当您看到以下错误时,无需升级:

数据库文件是由较早版本的 SQL Server Compact 创建的。请使用 SqlCeEngine.Upgrade() 方法进行升级。

简单来说:
  1. 在解决方案资源管理器中右键单击项目
  2. 选择属性,转到引用选项卡
  3. 您会看到一个名为:System. Data.SqlServerCe Type/net version/4.0 的引用 - 删除此项(选择该项,然后单击窗口底部的“删除”)。
  4. 单击“删除”按钮左侧的“添加...”按钮
  5. 在 .NET 选项卡中,找到 System.Data.SqlServerCe 3.5 并添加它。
  6. 编译您的项目!
我认为这将起作用。

4
可以不升级,除非你需要。如果在.NET选项卡中找不到System.Data.SqlServerCe,请从C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop添加引用。 - Brij
这个建议有些自以为是:许多使用Visual Studio 2015的人可能没有在他们的机器上安装v3.5版本的SqlServerCe。如果你要建议添加对v3.5的引用,那么对于那些没有在系统上安装该版本的人有什么获取它的想法吗? - Jazimov
1
@Jazimov,你说得对,但是我在3年前回答了这个问题,在2013年这是相当正常的做法。 - zviad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接