如何将 VB.net 程序连接到 access 数据库并在 2 台不同的 PC 上运行它。

Posted

技术标签:

【中文标题】如何将 VB.net 程序连接到 access 数据库并在 2 台不同的 PC 上运行它。【英文标题】:How do I connect a VB.net program to a access database and run it on 2 different PCs. 【发布时间】:2012-06-19 08:11:51 【问题描述】:

我有一个用 VB.net 编写的 Windows 应用程序。完成后,我将在多台电脑上设置程序。我想使用 Microsoft Access 将所有 PC 中的程序连接到另一台 PC 中的一个数据库,并且我还想限制用户对我程序中数据库的访问级别。

我该怎么做?非常感谢。

【问题讨论】:

请更具体地说明您在该任务的哪一部分遇到问题。 我需要使用 asp.net 还是将我的程序部署到 Web 应用程序才能在一个数据库上工作?访问是否足以满足此类需求,或者我应该将我的数据库转换为 sql?merci 如果可以的话,我肯定会推荐 SQL Over 访问。 Access 将处理多个连接,但仅适用于小负载和少量连接。由于它不是基于客户端/服务器的,因此您可能会因冲突而导致损坏。您不需要基于 Web 的应用程序来共享访问数据库。您可以将 MDB 放在网络共享上,并将所有客户端上的连接字符串指向该公共网络共享位置。 【参考方案1】:

Access 能够处理多个用户,但是一旦您拥有超过 3 或 4 个并发用户,您就会开始注意到 MS Access 不能很好地扩展。 Access 专为专业人士而非企业设计。

Microsoft SQL Server(Express 版是免费的 - 最多 4GB 空间)专为大量并发用户而设计。

我还想在我的程序中限制用户对数据库的访问级别。

如果您希望限制对文件的访问,您可以使用文件夹权限。就我个人而言,在使用 MS Access 的旧 VB6 应用程序中,我将文件称为 db.resources 而不是 db.mdb。这是因为如果在线托管 a.resources 文件(参考 DotNetNuke),则无法下载,因此人们不知道在哪个程序中打开该文件。

如果您需要基于角色的安全性,则需要企业级数据库,例如 SQL Server。

我想使用 Microsoft Access 将所有 PC 中的程序连接到另一台 PC 中的一个数据库。

这是让两台计算机共享同一个数据库的方法。

一个。选择将托管数据库的主 PC

b.将数据库托管在与其他用户共享的文件夹中

c。实际转到未托管数据库的 PC,在桌面上创建一个文本文件。

d。将文件扩展名从.txt重命名为.udl并回车

e。双击 udl 文件并输入这些设置并导航到托管共享数据库的共享文件夹:

f。测试连接成功后,关闭数据链接属性窗口。

g.右键单击桌面上的 UDL 文件并选择打开方式并使用记事本打开

h。您将看到您的连接字符串:

[oledb] ;此行之后的所有内容都是 OLE DB 初始化字符串 提供者=Microsoft.ACE.OLEDB.12.0;数据 Source=\\PCName\c$\temp\Database1.accdb;Persist Security Info=False

我。设置第二台电脑使用网络连接字符串。

【讨论】:

【参考方案2】:

Access 完全能够处理连接到同一数据库的 2 个用户。然而,这并不是 Ms-Access 的主要优势。因此,如果您打算扩大用户群,最好从 SqlServer Express(或 mysql)开始。

如果用户在同一个本地网络上,则不需要在这种情况下使用 asp-net。 您只需要准备一个有效的连接字符串来标识您安装数据库的网络位置。当然,托管数据库的 PC 应该共享网络位置,并为所有需要访问数据库的用户授予读/写权限。 (这可能是最复杂的部分,具体取决于您共享数据库的位置)

【讨论】:

我可以通过这种方式限制本地网络中不同电脑的数据访问级别吗? 不,这是一个完整的或没有的事情。在 access 2003 中,有一个 Workgroup Administrator 实用程序可以让您对表进行一些安全控制,但在最新版本中,Microsoft 似乎已尽力隐藏此功能,但我现在不再是专家,自 2007 版以来,我已不再使用 Access 安全相关部分,刚刚找到this link

以上是关于如何将 VB.net 程序连接到 access 数据库并在 2 台不同的 PC 上运行它。的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VB.net 中连接到本地网络上的 Access 数据库?

VB.Net 2008 连接到 MS Access

VB.net数据库编程(01):简单的入门实例--连接到Access文件

如何将 vb.net 连接到 ONLINE MySQL 数据库?

如何在 vb.net 中实现交易方式?

如何使 datagridview 实时连接到本地存储在 VB.NET 中的访问数据库?