0

我正在开发一个与 SQL Server 2005 创建的 Sql Compact 数据库文件交互的 Windows 窗体应用程序。该应用程序最初是在 Visual Studio 2005 中开发的,但最近已转换为 Visual Studio 2008 解决方案。

关于 Sql Compact,我们确保所有引用仍然设置为处理 2005 版 Sql Compact 而不是 Sql Compact 3.5 的程序集。完成此操作后,应用程序仍会正常运行 - 它仍将与 Compact 数据库交互、执行同步操作等。

但是,我今天刚刚发现,Visual Studio 工具(例如 DataSet Designer)不能很好地处理 3.5 之前版本的 Sql Compact 数据库文件。如果我转到New Connection...向导,则唯一的 Sql Compact 数据源/数据提供程序用于 Sql Compact 3.5。我假设 Visual Studio 2008 默认不包括旧版本 Sql Compact 的数据提供程序。

有没有办法可以将旧版本的 Sql Compact 添加到连接向导的“数据源”列表中?要确切了解我所指的内容,请单击 Visual Studio 2008 的工具菜单,然后单击连接到数据库...在出现的窗口中,单击数据源设置旁边的更改...。从这个对话框中,我无法选择 Sql Compact 的早​​期版本——只有 3.5 可用。

也许我需要在某处添加程序集引用?或者将一些文件从我的 Visual Studio 2005 目录复制到 2008?我认为 Visual Studio 2008 必须有一种方法才能与 Sql Server 2005 中的 Sql Compact 数据库进行交互。

为了提供更多细节,当我转到我的数据集时,我发现了这个问题,右键单击并尝试添加一个TableAdapter。出现的第一个屏幕显示“选择您的数据连接”。如果我将其设置为我们一直使用的 Sql Compact 连接,则现在单击Next >按钮时会出现以下错误:


无法打开与数据库的连接

“所选数据库是使用早期版本的 SQL Server Compact 创建的,需要升级到 SQL Server Compact 3.5 才能打开或测试连接。通过创建新的数据连接并完成“添加连接”对话框来升级数据库。 "

检查连接并重试。


这里唯一的问题是我们仍然使用 Sql Server 2005,如果我的理解是正确的,它不会产生与 Sql Compact 3.5 兼容的订阅文件。如果我在这个假设中错了,请纠正我。

非常感谢您提供的任何帮助。谢谢你。

4

1 回答 1

0

尝试使用 SqlCompact Engine 升级方法。

SqlCeEngine en = new SqlCeEngine("--conn string");
en.Upgrade();
于 2010-02-06T08:21:17.230 回答