如何使VB.NET应用程序作为多用户工作?

时间:2013-10-17 20:38:50

标签: vb.net ms-access-2007

我正在开发一个VB.Net应用程序。该应用程序可能正在LAN上工作。将使用MS Access作为后端。我开发了许多单用户应用程序,但不知道多用户,局域网,管理数据库等。如何使程序成为局域网上的多用户。将同时访问数据。如何管理这样的事情。 请给我一些帮助和指导。

由于

2 个答案:

答案 0 :(得分:5)

您的VB应用程序并不关心有多少人运行它。

使用MS Access的数据库存在多个用户的严重问题。如果可以的话,远离它。 SQL Server有一个名为SQL Express的免费版本。如果您只计划2个人,那么您可能会在一段时间内使用Access,但请准备好再支持它。

这就是所有简单的事情,现在你必须考虑如何处理试图访问和更新相同数据(并发)的多个用户。

想象一下,您是一位正在查看员工记录1的用户,其他人也是如此。你改变生日并保存。另一个用户改变了他们的suppervisor并保存。你怎么知道改变了什么?如果发生了变化,你会怎么做?这些是我无法回答的问题,您必须根据自己的情况做出决定。

有两种主要的并发类型,乐观和悲观。请参阅此链接以获得有关它们的精彩解释和讨论:optimistic-vs-pessimistic-locking

您可以逐个表地查看。

  1. 如果表永远不会更新,您不必担心并发性
  2. 如果表很少更新,就像状态表一样,您可以决定是否值得额外增加并发性。
  3. 其他一切,几乎应该有某种类型的并发。
  4. 现在,百万美元的问题,怎么样?

    您将找到尽可能多的方法来处理并发,因为您将在彩虹中找到颜色。以下是我喜欢的一些内容:

    1. 每次保存时递增的简单数字。小而容易。
    2. 日期时间戳 - 只要您不希望有2个人在同一秒内保存相同的记录,这很容易。 (我个人不喜欢它的自我)
    3. 用户名 - 非常简单,通过知道谁最后插入/编辑了记录但不处理我经常看到的问题来进行一些审核。想象一下与上面相同的senerio,但你有2个记录实例1.现在你再次更改数据,也许是主管,当你保存时,你用第二次保存的那些覆盖第一次保存的更改。
    4. Guid - VB可以创建一个guid,SQL Server可以创建一个guid,因此可以访问。它是一个很好的唯一且最重要的,您可以在客户端上创建它,这样您就不必在保存记录后重新查询数据库以获得刷新的记录。
    5. 这些的组合。我自己喜欢2和3。提供小型审核,对用户而言是独一无二的。
    6. 如果你使用 DataAdapter ,默认情况下,MS会假设并发检查意味着比较每个字段以确保它没有改变。这是有效的,但完全不可扩展,不应该这样做。

      所有这些都取决于您的应用程序的大小以及您如何看待它的使用。在你做出决定之前,肯定会做更多的研究。

答案 1 :(得分:1)

这里有很多解决方案。

如果我可以提出一个极端的替代方案,您是否考虑过将用户计算机上运行的客户端与服务器组件(通过Web服务)配对?一个更简单的替代方案是客户端通过网络直接与SQL Server(或其他数据库)实例通信?*

  

*我不喜欢让客户端应用程序直接与数据库对话。这将意味着未来的维护难题,但我   包括它给你选项

我通过Google找到了this random example所以YMMV。