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

Rah*_*rma 1 vb.net ms-access-2007

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

谢谢

Ste*_*eve 5

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

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

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

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

有两种主要类型的并发,乐观和悲观.请参阅此链接以获得有关它们的详细解释和讨论:乐观与悲观锁定

您可以逐个表地查看.

  1. 如果表永远不会更新,您不必担心并发
  2. 如果表很少更新,如状态表,您可以决定是否值得额外添加并发.
  3. 其他一切,几乎应该有某种类型的并发.

现在,百万美元的问题,怎么样?

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

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

如果您使用DataAdapter,默认情况下,MS将假定并发检查意味着比较每个字段以确保它不会更改.这是有效的,但完全不可扩展,不应该这样做.

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