最佳方法是在离线时在本地存储数据

时间:2010-05-25 00:22:07

标签: c# offline-mode

我正在编写一个小程序(更多用于试验vs 2010而不是其他任何东西)

尽管是一项实验,但它对我们当地的田径俱乐部有一些实际用途。

我的想法是访问数据库(目前在线)下载当前成员并在笔记本电脑上本地存储(这是一个MS sql表,用于为俱乐部网站供电)。

将笔记本电脑带到活动中(是的,有些地方没有互联网覆盖),将成员添加到当天的比赛中(也是来自sql表的一行(虽然不会对此进行任何更改),记录结果(第3表中的新记录)

一旦回家,洗澡并再次访问互联网,请根据比赛结果/成员变更等上传/编辑表格。

所以我在想我会做一些像本地写入xml文件的数据,包括一个表示更改等的字段?

如果有人能指出我的方向,我会很感激...如果有人能告诉我这是否有名字,我会很感激。

5 个答案:

答案 0 :(得分:4)

除了远程数据存储之外,基本上您需要的是桌面上的本地数据存储。然后,您可以手动编写代码以在离线/联机时同步数据存储,或者您可以使用Microsoft Sync framework为您处理。

我个人在许多项目中使用了Sync框架,一旦习惯了这些约定,它就非常容易使用。

答案 1 :(得分:1)

如果您正在使用MS SQL Server进行生产,并且只需要在个人计算机上脱机工作,则可以在本地安装MS SQL Server Express。这里使用不同的本地数据存储区的优点是,您可以重用模式,存储过程等,基本上只需要将连接字符串更改为您的应用程序(您也可以通过Visual Studio在本地运行)。您必须编写代码来手动同步您的在线和离线数据库实例,但由于它是一个小型应用程序,因此在您回家时将整个数据库从生产复制到本地,然后从本地复制到生产可能是合理的(假设您'是唯一更新数据库的人,并且在您参加活动时不会消除在生产中输入的任何新记录。)

答案 2 :(得分:1)

如果您的本地存储格式是您的。 SQLite是一种选择。您可以将表从服务器复制到本地SQLite db。

您也可以将数据保存到文件中,但XML是一种可怕的格式。您可能希望改为使用YAMLJSON

答案 3 :(得分:1)

您可能需要查看SQL Server Compact - 它提供了一些不错的功能,可以与母舰SQL服务器同步。

答案 4 :(得分:0)

Google Gears http://gears.google.com/的目的是,如果您的应用是一个网络应用(我不太了解您的描述)