Поиск базы данных SQL Server, установленной на компьютере
Я развернул приложение wpf и хотел бы узнать, как лучше всего подключиться к базе данных.
Например, после установки приложения мне нужно установить строку подключения для подключения к SQL Server Express.
Я прочитал ветку, в которой говорилось, что можно найти SQL-серверы, установленные на компьютере, поэтому после того, как я его найду, как мне подключить его программно?
Еще одна вещь, о которой я подумал: есть файл, который я могу прочитать и записать строку подключения как web.config в asp.net?
Я знаю что есть app.config
файл, но после развертывания я думаю, что он стал недоступным!
2 ответа
Нет ничего плохого в том, чтобы разместить SQL Server, особенно Express, на одном компьютере, если это небольшое приложение. Также есть функция localdb. В любом случае, этот фрагмент кода найдет все экземпляры SQL Server в вашей сети. Затем вы можете создать окно для отображения результатов, позволить пользователю выбрать сервер и создать строку подключения из результатов. Обратите внимание, что брандмауэры и т. Д. На сервере могут помешать этому процессу - обычно вы получаете имя сервера, но не другую информацию. Вы можете исправить это, добавив исключения в брандмауэр.
private DataTable FindServers()
{
System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance;
DataTable dt = instance.GetDataSources();
return dt;
}
В эти дни слой базы данных должен быть отделен от приложения DataService
или же MicroService
, Какой будет уровень доступа к данным.
Если вам не нужен такой уровень разделения и вы все еще думаете о приложении, которое подключается к базе данных напрямую, я бы предложил использовать конфигурацию для хранения строк подключения, как вы, вероятно, хотели бы охватить сценарий, когда база данных не находится на том же сервере, что и приложение WPF.
Файл конфигурации для не веб-приложения называется app.config
и точно так же, как web.config
для веб-приложений.
Проблема с автоматическим поиском установленных SQL-серверов проста: что, если на компьютере, где вы запускаете приложение, установлены два экземпляра? Как приложение будет знать, что использовать?