我有一个桌面应用程序(C# .NET 3.5),它使用 SQL 服务器作为它的数据库。但是,我收到了客户的请求,希望能够按原样导出数据库,并能够在没有连接的情况下在笔记本电脑上使用它。他们了解对父服务器的更新不会反映在这些离线客户端中。
有没有一种方法可以将数据集保存为二进制形式并将它们写入磁盘并将这些文件发送到脱机客户端。
我有一个桌面应用程序(C# .NET 3.5),它使用 SQL 服务器作为它的数据库。但是,我收到了客户的请求,希望能够按原样导出数据库,并能够在没有连接的情况下在笔记本电脑上使用它。他们了解对父服务器的更新不会反映在这些离线客户端中。
有没有一种方法可以将数据集保存为二进制形式并将它们写入磁盘并将这些文件发送到脱机客户端。
有一整套工具和技术涵盖了这个案例,即同步框架。请参阅同步数据库。有关与 SQL Server 中央数据库同步的客户端上的 SQL Server Compact Edition 文件(.SDF 文件)的起始示例,请参阅入门:客户端和服务器同步。请注意,除了您的应用程序之外,客户端不会安装任何其他东西,SQL Server CE 只是您随应用程序分发的几个进程内 DLL,几乎没有客户端上的 SQL Express 版本那么复杂。
好消息是,Synch Framework 不仅允许客户端获取他们自己的动态数据库快照,它实际上还允许在断开连接时应用的更改合并回中央站点。
您可以使用精简版(又名 SDF 文件),也可以使用内置方法将数据集保存为 XML。
您不能只进行 SQL Server 级别的备份并让他们在笔记本电脑上安装例如 SQL Server Express 并在那里恢复数据库吗?
这样,您根本不必在应用程序中做任何特别的事情 - 只需将连接字符串更改为指向本地 SQL Server Express 实例,然后就可以了!不要乱搞序列化数据集和其他东西......