Member 13484779 Ответов: 4

Как подключиться к базе данных по сетевому пути


у меня есть 4 базы данных в папке на моем локальном диске, проблема начинается, когда я перемещаюсь на сетевой диск на "\\192.168.1.62\Users\Public\ezidata\ezidata"
path1 ="\192.168.1.62\Users\Public\ezidata"
путь ="\\192.168.1.62\пользователи\общие\ezidata\ezidata\font1.ТМП"

моя ошибка заключается в следующем
System.Data.OleDb.OleDbException: ''C:\192.168.1.62\Users\Public\ezidata\font1.tmp' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.'


Что я уже пробовал:

var path1 = @"" + THEPath;
         var path = Path.Combine(path1, "font1.tmp");
          MessageBox.Show(path);
          OleDbConnection connect = new OleDbConnection
          {
              ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";" + " Jet OLEDB:Database Password=nif6914;"
          };

          connect.Open();

4 Ответов

Рейтинг:
31

OriginalGriff

Посмотрите на сообщение об ошибке:

'C:\192.168.1.62\Users\Public\ezidata\font1.tmp' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

Вы не можете поместить IP-адрес после спецификатора локального диска:
C:\192.168.1.62\...


И вы, вероятно, впустите себя в мир боли позже: большинство маршрутизаторов используют динамическое распределение IP-адресов, поэтому жесткое кодирование локальных IP-адресов (192.168.nnn.nnn-это всегда локальный IP-адрес) - это плохая идея. Когда маршрутизатор циклически питается, или устройства выключаются, перезагружаются или включаются в другом порядке, IP-адрес может быть не тем же самым.

Вместо этого используйте локальные имена хостов:
Data Source=\\MYCOMPUTER\share\folder\file.mdb


Рейтинг:
26

Garth J Lancaster

Ну, если вы не хотите создавать общий ресурс, но указываете на диск C:, и привилегии работают, вы можете использовать

\\192.168.1.62\c$\Users\Public\ezidata\ezidata
но это действительно разоблачает ваш диск C:\

Я бы сделал общий ресурс с правильными разрешениями, а затем, возможно, даже сопоставил его с выделенным пользователем/сервисом, когда ваша программа запустится, таким образом вы контролируете доступ - посмотрите здесь и используйте это в качестве основы для сопоставления, а затем размонтируйте диск Подключить сетевой диск (АПИ)[^]


Рейтинг:
15

Sandeep Mewara

Вам нужно будет попробовать что-то из формы:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\serverName\shareName\folder\myAccessFile.mdb;

Эталонное: Строки подключения Microsoft ACE OLEDB 12.0 - ConnectionStrings.com[^]


Рейтинг:
12

Member 13484779

Спасибо вам всем
я исправил свой код, чтобы
ВАР путь1 = @"" + путь;
string path= path1+ "font1.tmp";


Dave Kreskowiak

Что это за чертовщина:

 @"" + THEPath;

Вам не нужен мусор@"".

Все, что ты сделал, это:
var path1 = THEPath;

И это ничего не делает в вашем коде.