网络上连接到 Access DB 时出错

网络上连接到 Access DB 时出错

我有两台 PC,它们通过 WAN 互相连接。

我已经共享了包含一个文件夹Access Database,并且我授予每个人对数据库本身的所有内容的权限。

现在我正在使用的代码是:

string connectionString = string.Empty;
connectionString  = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\winPcDemo-570f\abcd\testDB.mdb; Jet OLEDB:Database Password=**********;";
OleDbConnection tmpconnection = new OleDbConnection(connectionString);

tmpconnection.Open(); // ERROR 

但这会出现一个错误:

磁盘或网络错误。

它与本网站上的任何其他问题都不一样,所以我发布此问题。

答案1

如果您尝试从资源管理器访问 \\Macbookpro-570f\abcd\ 来检查网络或共享设置是否存在问题,这将会很有帮助。(用结果更新您的答案)。

不过,我首先想到的是权限。Access 需要足够的权限才能在同一文件夹中创建其 .ldb 文件,并且能够修改 .mdb 文件。Windows 共享有 2 组适用的权限。第一组是共享上的权限,第二组是文件/文件夹上的实际 NTFS 权限。您需要确保这两个权限集都授予正确的用户足够的权限来修改 mdb 和创建 ldb。

答案2

我会尝试将路径映射到驱动器号。转到命令提示符(可能需要以管理员身份打开)并执行以下操作:

net use q: \\winPcDemo-570f\abcd mypassword /USER:myaccount

(如有必要,mypassword 和 my account 应该是您的凭证。如有必要,您还可以使用 q 以外的其他驱动器号。)

然后你可以使用

Data Source=Q:\testDB.mdb

代替

Data Source=\\winPcDemo-570f\abcd\testDB.mdb

我认为它应该按照您指定的方式工作,但也许这可以让您排除它是代码问题还是操作系统/权限问题。

希望这可以帮助!

相关内容