2010-03-26 80 views
0

我有一个桌面应用程序(C#.NET 3.5),它为其数据库使用SQL服务器。然而,我有一个来自客户端的请求,可以导出数据库,因为它可以在没有连接的情况下在笔记本电脑上使用它。他们知道对父服务器的更新不会反映在这些脱机客户端中。导出SQL Server数据库以供离线使用

有没有一种方法可以将DataSet保存为二进制格式并将它们写入磁盘并将这些文件发送给脱机客户端。

+0

离线实例SQL Server也是如此吗?假设数据库的大小小于4 GB,则备份和恢复将可以工作。但是,您必须重新创建登录名和任何作业。 – 2010-03-26 22:08:14

+0

不,它不是,我真的只想将DataSet对象导出为二进制文件,并能将其保存到文件中。 – WedTM 2010-03-26 22:38:57

回答

3

您可以使用精简版(又名SDF文件),也可以使用内置方法将数据集保存为XML格式。

+0

我喜欢XML导出。我想我会这样做。 – WedTM 2010-03-26 22:32:38

2

难道你只是采取SQL Server级别的备份,并让他们安装SQL Server Express在他们的笔记本电脑上并在那里恢复数据库?

这样你就不必在你的应用程序中做任何特殊的事情 - 只需要将连接字符串改为指向本地SQL Server Express实例,然后关闭!没有与序列化的数据集和东西混搭......

+0

我不希望他们必须安装任何其他软件。是的,SQL Server Express是一个选项。但是,目标受众在技术上并不精通,我不希望20,000个SQL Server Express实例出现在整个组织的网络浏览器中。 – WedTM 2010-03-26 22:29:50

+0

加上你可以配置“按需”合并复制来同步这两个,如果它需要的话(虽然rowguid列喜欢用一些数据访问代码的痛苦)。 – KSimons 2010-03-26 22:40:00

+0

这不是一个同步的情况。我不想要syncro'ed。基本上我有一个中央服务器,这是使用90%的时间。然而,有些时候,我有一台不具备连接性的工作站,所以我希望有一种方法可以让一个人“导出”数据,并将其交给非连接系统的操作员。 – WedTM 2010-03-26 22:50:51

4

有一整套工具和技术覆盖这种情况,即同步框架。见Synchronizing Databases。有关与SQL Server中央数据库同步的客户端(.SDF文件)上涉及SQL Server Compact Edition文件的开始示例,请参阅Getting Started: Client and Server Synchronization。请注意,客户端不会安装除应用程序以外的任何其他应用程序,SQL Server CE只是您随应用程序分发的一些进程内DLL,没有像客户端上的SQL Express版本那么复杂。

好消息是,Synch Framework不仅允许客户端获取他们自己的数据库快照,它实际上允许在断开时应用更改并将其合并回中央站点。

相关问题