如何将sqlce更改分发给客户端

时间:2014-03-27 14:42:46

标签: c# winforms .net-4.0 sql-server-ce

我们有一个SQL Compact Edition数据库,用于存储配置设置。它工作正常,但我想对其进行更改以存储其他信息。

我使用Winforms在C#中编写。

当我在项目中对数据库进行更改时,我需要将这些更改发送给客户,以便他们对更改进行更改。我们的客户拥有远程笔记本电脑,我们必须手动更新。如果可能的话,我更喜欢在代码中自动完成的某种方法。我对SQLCE不太熟悉,不知道我有哪些工具可以对客户数据库进行这些更改。每台远程笔记本电脑都拥有自己的SQLCE数据库,并拥有自己的代码来访问它。它们是没有连接到网络的个人笔记本电脑。

从项目数据库中比较和分发更改的简单方法是什么,并确保将这些更改应用于客户的数据库?

1 个答案:

答案 0 :(得分:3)

这是一个常见问题。您将应用程序与数据库一起发送,然后新实现需要db中的新字段(或其他一些架构更改)。现在,您打算如何更新已经安装了应用程序且内部有宝贵数据的客户?

这是一项复杂的任务,需要处理许多细节,但最简单的形式可以用这种方式实现:

在数据库中添加一个只包含一个记录和一列的新表。此表将被称为DBVersion,该记录包含一个反映所安装数据库版本的数字。 (如果你有一个配置表,你可以在那里添加一个记录)

现在您需要准备一个XML文件以随更新一起分发

 <Scripts>
    <Script>
      <Version>1</Version>
      <Command>ALTER TABLE ......</Command>
    <Script>
    ....
 <Scripts>

此时,您的应用程序可以读取存储在数据库中的版本号,并加载XML文件,执行与版本号相关的每个命令,该版本号高于存储在数据库表中的版本号。