我必须设计一个应用程序,主要是一个带数据库的接口,用于数据输入。应用程序必须能够在使用缓存数据与数据库断开连接时工作,并在再次连接时插入该数据。将有两种不同的模式,连接或断开,无需在连接的会话中间检测断开连接以切换到断开连接。
在我看来,这是一个共同的必要条件,我想知道是否有一种“标准”的方法来面对这个问题。将表缓存到本地文件,序列化查询到数据库的数据或其他任何内容。也许有一个存在的库可以做到这一点?
提前致谢。
PD:该应用程序将在.Net
中完成编辑:是一个WinForms应用程序,而不是Web应用程序。
EDIT2:要输入有关应用程序的更多详细信息,请在一个数据库中输入数据,但有时用户将在几周内不在办公室,并且需要输入数据,就好像它们已连接数据库中的缓存数据一样输入的数据将在重新连接时传输到数据库。
答案 0 :(得分:3)
您描述的方案可以通过数据库复制来解决。例如,如果您使用MS SQL服务器作为主C / S数据库,则可以将其复制到脱机用户工作站或笔记本计算机上的本地MSSQL Express安装。只要您的用户不在办公室,应用程序就必须连接到本地数据库,并在返回时将更改复制回中央数据库。我认为这是您正在寻找的“标准”方法,您不必为脱机情况编写特殊代码(除了更改连接的代码和一些启动复制的代码)。
您可能感兴趣的是,我们公司使用的CRM系统就像这样工作,使用的本地数据库是“MSSQL桌面引擎”,Express版本的前身,但恕我直言,这应该与Express版本一起使用也是。据我所知,您无需为MSSQL Express实例支付任何许可费用。
答案 1 :(得分:1)
ADO.NET in disconnected mode [PDF链接]可以作为您的起点。
答案 2 :(得分:0)
如前所述,ado.net是合乎逻辑的选择。
http://msdn.microsoft.com/en-us/library/aa719836%28VS.71%29.aspx
使用DataAdapter填充DataSet(在内存中),在断开连接时使用该DataSet,再次使用DataAdapter连接更新数据库时。
答案 3 :(得分:0)
我不确定您是否要构建网络或桌面应用,但Silverlight的out of browser功能也非常整洁。 Link提供了一个很棒的起点
答案 4 :(得分:0)
你可能想看看谷歌齿轮是如何设计的