Изменить строку подключения после создания установочного файла в C # .NET
=========================================================================

Я создаю приложения формы C # windows, результаты работы можно суммировать, когда пользователи заполняют некоторую форму и данные сохраняются в базе данных Access. Теперь проблема, с которой я сталкиваюсь, заключается в том, что я должен передать это как установочный файл кому-то. Я думаю, что код, установленный на других компьютерах и выполненный, выдаст ошибки из-за строки подключения Access db, поскольку он не будет соответствовать этому компьютеру. Я знаю, что при распространении проектов я могу поместить строку подключения в app.config, и каждый пользователь может изменить ее в соответствии со своей машиной. Но так как я даю установочный файл, как решить эту проблему.

  

(1) в вашем файле app.config поместите заполнитель в строку подключения. строка подключения будет содержать путь к файлу доступа к базе данных. замените путь специальной строкой.

(2) при запуске приложения используйте Directory.GetCurrentDirectory, чтобы получить путь к приложению.
перед созданием соединения замените путь ## ## фактическим путем на клиентском компьютере.  



Предположим, вы развернули свой app.config с этой строкой соединения

В приложении WinForms`|DataDirectory|` Ярлык представляет рабочую папку вашего приложения, но вы можете изменить его во время выполнения, если он указывает на использование этого кода.

Это избавляет от необходимости жестко кодировать полный путь, который, как вы обнаружили, приводит к нескольким проблемам, которые необходимо решить во время установки. Конечно, ваша установка должна доставить вашу базу данных по выбранному вами пути.



Вы можете построить`ConnectionString` во время выполнения`SqlConnectionStringBuilder`

**Edit:** Вы можете использовать это:[Поиск SQL-серверов в сети](http://www.codeproject.com/Articles/5703/Finding-SQL-Servers-on-the-Network)



 пользователь (машина \ пользователь) должен быть добавлен в вашу базу данных, чтобы иметь доступ.