|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||||||||||||||||
Строку подключения к SQL брать из .config файла21.02.2021, 14:39. Показов 7230. Ответов 45
Метки нет (Все метки)
Здравствуйте! Подскажите пожалуйста, как можно в коде прописать строку подключения, которая указана в файле .config?
На данный момент строка подключения вшита в код, и для того, чтобы программу можно было использовать на разных серверах приходиться менять строку в коде. Хочу сделать так, чтобы можно было поменять подключение в файле, а программа считывала его. Сейчас реализовано так: Объявил строку в класс
Файл конфигурации есть, но он не используется. Выглядит так:
0
|
||||||||||||||||
| 21.02.2021, 14:39 | |
|
Ответы с готовыми решениями:
45
Получить строку подключения из App.config Как получить строку подключения из app.config?
|
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||
| 21.02.2021, 20:47 [ТС] | ||
|
У меня к примеру 2.
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 21.02.2021, 20:47 | ||
|
Вам просто нужно попрактиковаться
0
|
||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
|
| 21.02.2021, 20:51 [ТС] | |
|
MsGuns, почему ерунду?
Как вы себе представляете создание базы на организации? Т.е. если только пользуясь backup/restore это значит мне нужно создать там пустую базу и выполнить restore? Не проще ли .mdf файл базы подложить и выполнить Attach?
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 21.02.2021, 20:51 | ||
|
"Сервер" у вас один. В смысле ПК. А "SQL-Server" у Вас два. Один Local(Express), а второй, возможно Enterprise. Почувствуйте разницу
0
|
||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||
| 21.02.2021, 20:53 [ТС] | ||
|
Изначальный вопрос, как сделать так, чтобы программа считывала "сервер" из app.config?
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||
| 21.02.2021, 20:58 | ||||
|
Вместо того, что просто найти в инете простые и надежные способы. Главное - результат. Абсолютно не влияющий на сценарий настройки Вашего приложения. Или Вы хотите с установкой приложения устанавливать и БД ? Что Вы хотите сделать ? Добавлено через 3 минуты Или Вы ручками туда пишете строку ? У меня уже мозги плавятся с Вами
0
|
||||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||||||||
| 21.02.2021, 21:00 [ТС] | ||||||||
|
Объясняю наверно раз восьмой, чего я хочу. Имеется строка подключения:
Добавлено через 1 минуту
0
|
||||||||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
|
| 21.02.2021, 21:07 [ТС] | |
|
Вот пример другой программы, которая имеет программу настройки подключения.
Тут изображено, что выбирается адрес или имя сервера и после слеша задается серер (инстанс, экземпляр (SQLEXPRESS))
0
|
|
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
|||||||||||
| 22.02.2021, 08:25 | |||||||||||
|
detrop, решение с чтением конфига через ConfigurationManager разве не рабочее?
Добавлено через 12 минут Адрес инстанса указывается в атрибуте Data Source строки подключения:
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||||||
| 22.02.2021, 09:01 [ТС] | ||||||
|
IamRain, рабочее, я сделал так:
Потому что Имя сервера берется из файла, но экземпляр sql сервера не считывается. Моя задача теперь сделать так, чтобы экземпляр тоже считывался из файла, но чтобы я туда не указывал - подключение не происходит. Пробовал разные варианты написания: connectionString="Server=DESKTOP-2J8JPAC/MSSQLEXPRESS; connectionString="Server=(DESKTOP-2J8JPAC)/MSSQLEXPRESS; connectionString="Server=DESKTOP-2J8JPAC\MSSQLEXPRESS; и т.п. Добавлено через 3 минуты Почему я не могу оставить builder.DataSource = Environment.MachineName + "\\MSSQLSERVER"; Потому что это привяжет программу к имени сервера и к экземпляру MSSQLSERVER. В таком случае при подключении она ВСЕГДА будет стучаться к данному экземпляру и к серверу, имя которого в Environment.MachineName. А нужно, чтобы стучался в указываемый МНОЙ сервер и указываемый экземпляр.
0
|
||||||
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
|||||||||||||
| 22.02.2021, 09:13 | |||||||||||||
Просто вот так:
0
|
|||||||||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 22.02.2021, 17:48 | |
|
IamRain, Фишка в том, что на каждом ПК, где устанавливается прога, свой SQL-сервер. То ли сетевой, то ли локальный (то ли его вообще нетути) - автор умалчивает.
И хочет написать некий код, который сам или с его помощью найдет нужный SQL-сервер, установит на него базу и впишет строку соединения в конфиг. Идея сама себе инвалидная, реализация, как видим, тоже ![]() Добавлено через 10 минут Ему уже был предложен вариант установочной программы, которая включается в install-пакет. Эта программа работает так: 1. Проверяет была ли уже установка ранее по сеттингам ? Если была вытаскивает из сеттингов строку соединения и проверяет есть ли в наличие SQL-server и нужная база на нем. Если все ок, то ничего не делает. 2. Если не было установки (сеттингов нет на ПК), ищет доступные SQL-сервера и предлагает выбрать нужный. 3. После выбора SQL-сервера проверяется есть ли на нем нужная БД и, если нет, предлагает ее создать и засунуть туда содержимое, взятое откуда-то, например из файла mdf, прилепленного в тот же install. 4. Когда все выбрано, база создана (или приаттачена, как желает ТС, хотя это неправильно), то создается сеттинг и в него суется строка кроме всего прочего соединения. 5. Основное приложение лезет в сеттинг, вытаскивает оттуда строку соединения, пихает ее в конфиг и далее по тексту
0
|
|
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
||
| 22.02.2021, 22:44 [ТС] | ||
|
Я сказал, что программа может установиться на ЛЮБОЙ ПК в сети, обращаться к сервер, где находится бд она будет через строку подключения в .config файле. Для изменения сервера, к которому будет подключаться программа нужно изменить адрес и инстанс сервера в вышеописанном файле. Неужели я так сложно объясняю?
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||
| 22.02.2021, 23:36 | |||
|
Если одна "организация". В ней есть N ПК и SQL-сервер. Один на всех. При установке приложения на ПК 1 устанавливается БД. При установке приложения на ПК 2 устанавливается БД опять ? Поверх уже установленной ? А если между этими событиями пользователь ПК1 уже чего-то в базу внес ? Вы сами не можете разобраться что Вам нужно. Пишете, что Вас не могут понять ? А Вы сами себя понимаете ?
0
|
|||
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
|||||
| 23.02.2021, 08:35 [ТС] | |||||
|
MsGuns, еще раз:
0
|
|||||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|
| 23.02.2021, 10:02 | |
|
detrop, строка подключения для всех клиентов одинаковая. Если сервер переедет на другой ip, она изменится, но по-прежнему будет одинаковой для всех клиентов. Так что вам нужно сделать инсталлятор с конфиг-файлом, где будет строка подключения. При изменении строки подключения вы вносите изменения в конфиг-файл и отдаете инсталлятор пользователям для переустановки программы.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 23.02.2021, 12:31 | |
|
detrop, Что Вы понимаете под "установкой приложения" и "установкой базы" ? Это все в одном" стакане" или в разных ? Ну и в [36] Вам написали то же, что было уже надцать раз сказано в этой ветке.
0
|
|
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
|
| 23.02.2021, 14:50 [ТС] | |
|
Я тоже уже надцать раз объяснял как все должно быть.
Изначальную проблему решил, я просто некорректно указывал инстанс, слеш писал не в ту сторону. Все ответы по теме учел, всем спасибо!
0
|
|
|
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
|
|||||||||||
| 24.02.2021, 09:36 [ТС] | |||||||||||
|
Почтальон, Код подключения у меня выглядит так:
1
|
|||||||||||
| 24.02.2021, 09:36 | |
|
Где располагается app.config, содержащий строку подключения Создать App.Config для хранения данных для подключения к MS SQL серверу-DataSource и InitialCatalog SQL: получить строку подключения Не видит строку подключения к SQL server брать строку не из файла а передать параметром в .exe Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|