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