Ошибка подключения к базе данных Access в сети
У меня есть два компьютера, подключенных друг к другу по глобальной сети.
Я поделился папкой, содержащей 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
Но это приводит к ошибке:
Ошибка диска или сети.
В отличие от любого другого вопроса на этом сайте, поэтому я публикую это.
2 ответа
Я бы попытался сопоставить путь к букве диска. Перейдите в командную строку (может потребоваться открыть как администратор) и выполните следующие действия:
net use q: \\winPcDemo-570f\abcd mypassword /USER:myaccount
(mypassword и моя учетная запись должны быть вашими учетными данными, если это необходимо. Вы можете использовать другую букву диска, кроме q, если это необходимо.)
Затем вы можете использовать
Data Source=Q:\testDB.mdb
вместо
Data Source=\\winPcDemo-570f\abcd\testDB.mdb
Я думаю, что это должно работать так, как вы указали, но, возможно, это позволит вам исключить, является ли это проблемой кода или проблемой ОС / привилегий.
Надеюсь это поможет!
Было бы полезно, если вы попытались зайти в \\Macbookpro-570f\abcd\ из проводника, чтобы проверить, есть ли проблемы с сетью или настройкой общего ресурса. (Обновите свой ответ с результатом).
Моя первая мысль - разрешения. Доступ требует достаточных разрешений для создания файла.ldb в той же папке, а также для возможности изменения файла.mdb. Общие ресурсы Windows имеют 2 набора разрешений, которые применяются. Первый - это разрешения для общего ресурса, второй - фактические разрешения NTFS для файла / папки. Вы должны убедиться, что ОБА из этих наборов разрешений предоставляет правильные достаточные права пользователя для изменения mdb и создания ldb.