我正在用C#编写一个应用程序,其中在不同计算机上的两个或多个用户的数据表是通过网络共享的SQLite数据库中的同一表填充的。我希望所有用户的数据表保持同步,以便如果一个用户执行数据库操作(INSERT,UPDATE或DELETE),其他用户的DataTable保持更新,而不必从数据库中重新加载整个表。

最简单的方法是什么?

最佳答案

您可以在客户端使用缓存。

那就是这里提出的:How to synchronise/check the data from database to datatable in C#?

除了那里提出的ASP.NET Cache,您可以使用Caching Application Block:http://msdn.microsoft.com/en-us/library/ff649093.aspx

您可以在以下SO线程中找到一个示例:Microsoft Enterprise Library Caching Application Block not thread safe?

缓存负责每隔X秒检查一次数据库中的所有更改,一旦发现更改,它就会从数据库中重新加载,您必须在应用程序中对其进行更新。

您仍然可以使用缓存,以更智能的方式执行此操作。

您在服务器上创建了一个服务,该服务接收所有INSERT,UPDATE和DELETE指令,并将它们应用于数据库,然后将无效消息发送到所有客户端的缓存,以告诉他们更新其数据。

这意味着您的客户端在启动时会订阅无效通知服务,并在发生更改时得到通知。

如果您对此感兴趣,可以在这里找到一个不错的教程:http://www.codeproject.com/Articles/51409/Exploring-Caching-Using-Caching-Application-Enterp,它将有助于您全面了解什么是缓存以及该缓存的工作方式。

10-07 19:33
查看更多