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

Posted

技术标签:

【中文标题】如何将 sqlce 更改分发给客户端【英文标题】:how do I distribute sqlce changes to clients 【发布时间】:2014-03-27 14:42:46 【问题描述】:

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

我正在使用 Winforms 编写 C#。

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

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

【问题讨论】:

如果你要投反对票,请告诉我为什么,这样我就可以解决这个问题。 我没有投反对票,但是,您的问题令人困惑。您是否在问如何更新数据库以及如何更新软件以反映这些更改?如果是这样,那么这是一个很大的问题,我们不知道您的设置等 +1 供您发表评论 我会为这个帖子澄清一下。 @ErocM 不要让挫败感降临到你身上,尽管在没有反馈的情况下投反对票有点粗鲁。我怀疑在这种情况下人们会觉得它有点宽泛和主观。话虽如此,我认为您有一个有效的问题,也许一些小的编辑会有所帮助。 @ChrisBallard 我更新了它,谢谢输入。你有什么需要我澄清的吗? 【参考方案1】:

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

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

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

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

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

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

【讨论】:

感谢您的回复。我相信这就是我要找的!我会试一试。再次感谢!

以上是关于如何将 sqlce 更改分发给客户端的主要内容,如果未能解决你的问题,请参考以下文章

我们可以通过应用商店或其他方式将不同版本的单个应用分发给不同的客户端吗?

如何在不发布到应用商店的情况下将开发中的 iOS 应用分发给客户进行过程中评估

是否可以按商店、企业或 B2B 将不同版本的应用程序分发给不同的客户?

在没有 SVN 客户端的情况下应用 TortoiseSVN 补丁

如何创建 nodejs websocket 客户端

如何在 libtorrent 中应用代理?