3

我正在用 C# 编写一个应用程序,其中不同计算机上的两个或多个用户具有从通过网络共享的 SQLite 数据库中的同一个表填充的 DataTable。我希望所有用户的数据表保持同步,这样如果用户进行数据库操作(插入、更新或删除),其他用户的数据表保持更新,而无需从数据库重新加载整个表。

最简单的方法是什么?

4

1 回答 1

0

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

这就是这里提出的:如何在 C# 中将数据从数据库同步/检查到数据表?

您可以使用缓存应用程序块,而不是那里建议的 ASP.NET 缓存: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这将有助于充分理解什么是一个缓存以及这个是如何工作的。

于 2013-03-28T13:39:35.410 回答