我正在用 C# 编写一个应用程序,其中不同计算机上的两个或多个用户拥有一个数据表,该数据表由网络共享的 SQLite 数据库中的同一个表填充。我希望所有用户的数据表保持同步,这样如果一个用户进行数据库操作(INSERT、UPDATE 或 DELETE),其他用户的数据表将保持更新,而不必从数据库中重新加载整个表。
最简单的方法是什么?
最佳答案
您可以在客户端使用缓存。
这就是这里提出的建议:How to synchronise/check the data from database to datatable in C#?
您可以使用缓存应用程序 block 来代替此处建议的 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这将有助于全面了解什么是缓存以及它是如何工作的。
关于c# - 将多个数据表链接到同一个数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680106/