c# - 将多个数据表链接到同一个数据库表

标签 c# sqlite datatable synchronize

我正在用 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/

相关文章:

c# - 在 LINQ 中使用 IN 运算符

python - 如何将现有的带有数据的 CharField 迁移到 Django 中的 IntegerField

sqlite - 检查 SQLite 中是否存在列

css - 如何选择 <p :dataTable> by CSS?

c# - 没有通用扩展方法的类型推断

c# - 用 C# 编写的 COM 对象 - 获取类,但不获取方法

c - 从 sqlite 中的 blob 中读取垃圾

c# - 如何更改或替换数据表中的所有列名

javascript - google.visualization.DataTable() 定位分页div

c# - 使字符串 URL 友好(例如 : convert Montréal to Montreal)