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

1

Я новичок в SQL Server и.net. Пожалуйста, дайте мне знать, если мой вопрос не ясен до голосования.

Я работаю над Windows-приложением с С#. Я должен дать возможность пользователям подключаться к файлу .mdf на сетевом диске. На моей машине у меня есть проверка подлинности Windows и SQL Server. У пользователей есть проверка подлинности SQL, поэтому я должен использовать userid и pwd. Я и пользователи работают на этом сетевом диске, читают/записывают/изменяют. Мы в значительной степени обмениваемся документами, добавляем и удаляем документы с сетевого диска.

Вот дизайнер

Изображение 174551

Я .mdf файл .mdf базы данных SQL Server, который находится в сетевом диске, а затем проверит соединение. Для тестового соединения это код

 string sTemp = System.Configuration.ConfigurationManager.AppSettings["connectionStringShare"];

 string connectionString = sTemp.Replace("{AppDir}", txtDB.Text.Trim());

 using (SqlConnection objSqlConnection = new SqlConnection(connectionString))
 {
          try
          {
              objSqlConnection.Open();
              objSqlConnection.Close();
              MessageBox.Show("Connection is successfull");
          }
          catch (Exception ex)
          {
              MessageBox.Show("Error : " + ex.Message.ToString());

          }
}

Это строка подключения

<add key="connectionStringShare" 
     value="Data Source=.\SQLEXPRESS;Initial Catalog=TableSQLExpress;AttachDBFilename={AppDir};Integrated Security=SSPI;user id=sa;password=pwd;" />

Вот сообщение об ошибке, которое я получил

Поиск каталога для файла "S:\zrep\TableSQLExpress.mdf" не удался с ошибкой операционной системы 3 (система не может найти указанный путь).
Не удается прикрепить файл "S:\zrep\TableSQLExpress.mdf" в качестве базы данных "TableSQLExpress".

Я изменил строку подключения и попробовал также устать, используя проверку подлинности Windows. Не повезло. Дайте мне знать, если мне нужно предоставить дополнительные сведения. Поскольку я новичок в этом поле, пожалуйста, дайте мне подробный ответ. Я рад этой группе. Спасибо всем, кто заглянул в это.

  • 0
    Работает ли это, если вы используете путь UNC вместо буквы диска?
  • 3
    В любом случае, если у вас есть ориентированная на сервер среда - зачем возиться с файлами .mdf и тому подобным? Просто имейте центрально расположенный компьютер SQL Server, создайте там свои базы данных на сервере и подключайтесь к серверу и базам данных, используя только логическое имя базы данных - не связывайтесь с файлами .mdf и не присоединяйте их и тому подобное - waaaaay сложным и подверженным ошибкам - без какой-либо реальной выгоды.
Показать ещё 6 комментариев
Теги:
networking

1 ответ

1

Когда вы используете серверный SQL Server (т.е. Microsoft SQL Server Express), вы не можете обмениваться файлом базы данных через сетевой диск, это по дизайну. Даже если вы переопределите поведение по умолчанию SQL Server с помощью коммутатора и включите пути UNC для баз данных, ваши данные будут повреждены несколькими экземплярами сервера, пытаясь использовать файл MDF с одной базой данных. Если вам необходимо разместить базу данных в безсерверной среде (используя только сетевой диск), вы можете выбрать версию Microsoft SQL Server Compact (SQL Server CE). Но имейте в виду, что в таком случае только один пользователь сможет одновременно получить доступ к файлу базы данных (исключительная блокировка → низкая производительность). Кроме того, SQL Server CE не хранит procs.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню