我正在开发一个VB.Net应用程序。该应用程序可能正在LAN上工作。将使用MS Access作为后端。我开发了许多单用户应用程序,但不知道多用户,局域网,管理数据库等。如何使程序成为局域网上的多用户。将同时访问数据。如何管理这样的事情。 请给我一些帮助和指导。
由于
答案 0 :(得分:5)
您的VB应用程序并不关心有多少人运行它。
使用MS Access的数据库存在多个用户的严重问题。如果可以的话,远离它。 SQL Server有一个名为SQL Express的免费版本。如果您只计划2个人,那么您可能会在一段时间内使用Access,但请准备好再支持它。
这就是所有简单的事情,现在你必须考虑如何处理试图访问和更新相同数据(并发)的多个用户。
想象一下,您是一位正在查看员工记录1的用户,其他人也是如此。你改变生日并保存。另一个用户改变了他们的suppervisor并保存。你怎么知道改变了什么?如果发生了变化,你会怎么做?这些是我无法回答的问题,您必须根据自己的情况做出决定。
有两种主要的并发类型,乐观和悲观。请参阅此链接以获得有关它们的精彩解释和讨论:optimistic-vs-pessimistic-locking
您可以逐个表地查看。
现在,百万美元的问题,怎么样?
您将找到尽可能多的方法来处理并发,因为您将在彩虹中找到颜色。以下是我喜欢的一些内容:
如果你使用 DataAdapter ,默认情况下,MS会假设并发检查意味着比较每个字段以确保它没有改变。这是有效的,但完全不可扩展,不应该这样做。
所有这些都取决于您的应用程序的大小以及您如何看待它的使用。在你做出决定之前,肯定会做更多的研究。
答案 1 :(得分:1)
这里有很多解决方案。
如果我可以提出一个极端的替代方案,您是否考虑过将用户计算机上运行的客户端与服务器组件(通过Web服务)配对?一个更简单的替代方案是客户端通过网络直接与SQL Server(或其他数据库)实例通信?*
*我不喜欢让客户端应用程序直接与数据库对话。这将意味着未来的维护难题,但我 包括它给你选项
我通过Google找到了this random example所以YMMV。