如何构建脱机数据库

时间:2009-11-13 13:41:39

标签: .net sql sql-server-2008

使用Sql Server 2008,.Net 3.5& C#。

我正在设计一个桌面应用程序,当没有互联网连接时,该应用程序以只读状态运行。当连接再次可用时,它将使用webservices更新中央数据库。

我可以使用哪些技术“下载”适用于每个客户端的一组数据以供离线使用?

4 个答案:

答案 0 :(得分:1)

SQL Server Compact Edition专为此过程而设计。它具有同步功能,但请注意它没有完整 SQL功能(即视图,索引等)。

答案 1 :(得分:0)

这取决于你的要求,连接类型(有线/无线?),是便携式笔记本电脑/掌上电脑类型/台式电脑,有几种方法可以做到,一般来说,你想要每隔几分钟(可配置)监控您的网络连接,当网络连接上有活动时,连接到Web服务(再次,防火墙怎么办?)并从数据库中下载更新。这种监控网络可能会有所不同,例如每隔一段时间ping一次web服务的ip地址(这是确定网络连接的常见和最简单的方法)如果你谈论的是便携式设备,比如pda ......它变得更加棘手(有)没有合适的方法在vs的标准控件中执行它 - 您可能需要查看opennetcf.org以获取activesync的扩展和增强功能。请注意,在检查时不要因为轮询而消耗太多的CPU时间网络连接。

答案 2 :(得分:0)

这不是SMART Client应用程序的目的吗?

另一种选择是将所有数据缓存到内置于windows中的包含ESENT database中。另一种选择是在您的应用程序中包含SqlLite或某些类似的嵌入式数据库,以便在存在连接时进行同步。

答案 3 :(得分:0)

您可能希望查看SQLLite是一个开源便携式数据库引擎。

以下网址上有ado.net版本:

http://sqlite.phxsoftware.com/

在pll中包含引擎的内容包括在内。非常容易部署。

我刚刚开始将它用于类似的项目,到目前为止似乎工作得非常好。

它支持各种标准sql功能,例如视图,触发器等。

斯科特