我正在用 C# 编写一个应用程序,其中不同计算机上的两个或多个用户具有从通过网络共享的 SQLite 数据库中的同一个表填充的 DataTable。我希望所有用户的数据表保持同步,这样如果用户进行数据库操作(插入、更新或删除),其他用户的数据表保持更新,而无需从数据库重新加载整个表。
最简单的方法是什么?
我正在用 C# 编写一个应用程序,其中不同计算机上的两个或多个用户具有从通过网络共享的 SQLite 数据库中的同一个表填充的 DataTable。我希望所有用户的数据表保持同步,这样如果用户进行数据库操作(插入、更新或删除),其他用户的数据表保持更新,而无需从数据库重新加载整个表。
最简单的方法是什么?
您可以在客户端使用缓存。
这就是这里提出的:如何在 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这将有助于充分理解什么是一个缓存以及这个是如何工作的。