Поиск базы данных 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-серверов проста: что, если на компьютере, где вы запускаете приложение, установлены два экземпляра? Как приложение будет знать, что использовать?

Другие вопросы по тегам