Возникли проблемы при подключении исполняемого файла C # к файлу базы данных на удаленном компьютере. - PullRequest
1 голос
/ 06 июля 2010

Использование VC # Я создал приложение для управления персоналом, которое при первом запуске должно запросить у пользователя путь к базе данных (.mdf), которая будет находиться на удаленном компьютере. Результирующий путь может быть что-то вроде

string dbPath = @"P:\remoteComputer\public\StaffTool\ExamplePersonnelDatabase.mdf";

Затем я помещаю эту строку в шаблон строки подключения следующим образом:

string dbConnectTemplate = @"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30;User Instance=True";
string dbConnectionString = String.Format(dbConnectionTemplate,dbPath);

Затем я пытаюсь подключиться к базе данных в стиле LINQ to SQL

ManagementDBDataContext db = new ManagementDBDataContext(
                dbConnectionString);

В этот момент появляется всплывающее сообщение о том, что

Файл "P: \ remoteComputer \ public \ StaffTool \ ExamplePersonnelDatabase.mdf" находится в сетевом пути, который не поддерживается для файлов базы данных.

Попытка присоединить базу данных с автоматическим именем для файла P: \ remoteComputer \ public \ StaffTool \ ExamplePersonnelDatabase.mdf не удалась. База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC.

Поскольку я относительно новичок в базах данных, я совершенно не понимаю этого сообщения. И, очевидно, файл не находится на общем ресурсе UNC.

Есть идеи?


Джим Лэмб рекомендовал мне подключиться к экземпляру SQL-сервера, работающему удаленно. Учитывая, что я использую LINQ to SQL, какой рефакторинг мне нужно сделать, чтобы это произошло? Другие идеи по-прежнему приветствуются, особенно решения «нажми эту кнопку, и все будет работать».


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

1 Ответ

4 голосов
/ 06 июля 2010

Вы пытаетесь подключиться к файлу базы данных на другом компьютере через сетевое соединение, которое не поддерживается SQL Express. Вам нужно будет сделать локальную копию и прикрепить к ней или подключиться к экземпляру SQL, работающему на той же машине, что и файл MDF.

...