Подключите базу данных SQL Server в C # и автоматически используйте нужный файл PDF - PullRequest
1 голос
/ 18 ноября 2011
  1. Мое приложение устанавливает SQL Server Express
  2. Имеет много файлов .mdf и .ldf на диске
  3. приложение копирует все базы данных и файлы журналов в каталог данных SQL Server
  4. приложение пытается подключить базы данных программным способом.

Мой код:

FileInfo mdf = new FileInfo(dbfile);

databasename = mdf.Name.ToLower().Replace(@".mdf", @"");
StringCollection databasefiles = new StringCollection();
databasefiles.Add(mdf.FullName);
databasefiles.Add(mdf.FullName.ToLower().Replace(@".ldf", @"")); 
//this is where I have issue. Obviously I can't assume that the log file name would be the same as mdf file name with ldf extension. Thats when I thought there would be a way to read the header information from mdf file, and that will have ldf information.

Server sqlServer = new Server(textServer.Text);
sqlServer.AttachDatabase(databasename, databasefiles);

Как выбрать правильный файл .ldf.Например, в c: \ temp у меня есть db1.mdf, db2.mdf и db1.ldf, db_1.ldf, db1_log.ldf.Как я узнаю, какой файл .ldf подходит для db1.mdf

1 Ответ

1 голос
/ 18 ноября 2011

Нет, насколько я знаю, нет реальной "связи" между файлами MDF и LDF в самих файлах. Есть ссылка - в метаданных базы данных внутри SQL Server.

Мой подход, вероятно, будет:

  • проверьте, существует ли mydatabase.ldf -> если да, используйте это
  • проверьте, существует ли mydatabase_log.ldf -> если да, используйте это
  • проверьте, существует ли mydatabase_1.ldf -> если да, используйте это

и если вы все еще не нашли свой файл LDF - вы, вероятно, могли бы выполнить поиск mydatabase*.ldf в каталоге, где находится ваш MDF. Это не удастся с треском на наших тестовых серверах - наши системные администраторы всегда устанавливали файлы данных .MDF/.NDF в SQL2008-DATA и файлы журналов .LDF в каталог SQL2008-LOG - совершенно отдельно.

В этом случае вам необходимо либо настроить отображение .MDF -> .LDF, например, файл конфигурации или что-то, или просто всплывающее диалоговое окно «Найти файл .LDF» для пользователя ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...