Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
MS SQL

Подключение к БД

01.06.2021, 14:52. Показов 1732. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не нашел в инете (или плохо искал) нужных для меня способов подключения. Те что находил, не работают.

Значит подключаюсь в коде к бд следующим образом:
C#
1
2
3
4
SqlConnection connection = 
new SqlConnection(Data Source=(LocalDB)\MSSQLLocalDB;
AttachDbFilename=C:\Users\"Имя"\source\repos\CarSales\CarSales\Database.mdf;
Integrated Security=True)
Отсюда следующая проблема, если запускать с другого компьютера - программа просто не найдет бд, и работать с ней (с программой) будет невозможно. Сейчас использую костыль с ручным открытием БД в случае, если по строке подключения выше бд не находит.
И собственно вопросик. Как открывать бд так, чтобы не было привязки к точному местоположению бд.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2021, 14:52
Ответы с готовыми решениями:

Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 127.0.0.1:11000
Клиент-серверное приложение на tcp/ip Все работало на win xp(порты 11000 и 11001), но на win7 не стартует. Итак: 1. Фаейрволл...

Определение осуществлено ли подключение к заданной WI-FI сети и подключение к ней, если не подключена
Добрый день. Суть задачи - в винде хочу что бы программа определяла - подключена ли она (винда) к заданной сети Wi-Fi (на которой...

Локальные сети. Подключение не установлено т.к конечный компьютер отверг запрос на подключение
Подскажите пожалуйста! у меня возникла проблема с программой,вот что отвечает на запрос "подключение не установлено т.к конечный...

14
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 14:57
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
Как открывать бд так, чтобы не было привязки к точному местоположению бд.
Никак.
Если нужно, чтобы БД открывалась с любого ПК, находящегося в сети, нужно переместить ее на сетевой сервер, а в приложении настроить Connectionstring на эту сетевую БД (точнее, MS SQL сервер)
Ну и сам MS SQL Server должен быть соответствующим образом настроен
0
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
01.06.2021, 15:00  [ТС]
Ну забыл указать, получается у меня это курсач, использую строго MS SQL как бд, и свой ПК как сервер (или как там вся эта штука обзывается)

Какую БД тогда можно использовать вместо MS SQL, в которой не будет такой четкой привязки к местоположению самого файла бд?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 15:05
Однако, однако..
Такое можно соорудить. Через API .

В этом случае приложение действительно ничего не будет знать о БД, ни где оно находится, ни что зам за SQL-сервер и есть он вообще
Но API, кончено, знать об этом будет

Раньше такое называлось "трехзвенкой".

Добавлено через 3 минуты
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
Какую БД тогда можно использовать вместо MS SQL, в которой не будет такой четкой привязки к местоположению самого файла бд?
Как Вы себе это представляете ? Куда приложение будет отсылать запросы - на деревню дедушке ?

Если Вам нужно, чтобы приложение устанавливалась на ПК вместе с базой и при этом более ничего не надо было устанавливать, то SQLite самое то. Но, учтите, что на каждом ПК будет своя личная БД и связи между ними никакой не будет.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
01.06.2021, 15:09
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
Как открывать бд так, чтобы не было привязки к точному местоположению бд
Либо закинуть в сеть на MS SQL Server, как советовали выше, либо установить на конечной машине MSSQLLocalDB и SSMS, в SSMS подключиться экземпляру MSSQLLocalDB и в нем подключить вашу БД. Строка подключения, правильная, выглядит вот так
XML
1
2
3
    <add name="SQLConnect" 
         connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=database;Integrated Security=True;"
         providerName="System.Data.SqlClient"/>
Ну и конечно в БД должны быть настроены доступы для пользователя другого ПК. Всё делается в SSMS.
0
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
01.06.2021, 15:21  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
Как Вы себе это представляете ? Куда приложение будет отсылать запросы - на деревню дедушке ?
Ну извиняюсь за не совсем корректный вопрос в очередной раз. Я с бд не особо сильно знаком, с точки зрения готового проекта и тд. В ВУЗе к сожалению нас за этот семестр обучили только запросам в SQL, да и кратко про использование БД в шарпе. А вот такие моменты, которые мне щас нужны, у нас не обсуждались.

В общем, я подразумевал не полный путь к файлу (типа C:\...\name.mdf). Хотелось бы чтобы путь к бд указывался внутри проекта, чтобы вместо (AttachDbFilename=C:\Users"Имя"\source\r epos\CarSales\CarSales\Database.mdf)
было аля (AttachDbFilename=CarSales\Database.mdf) .
В моем проекте и не нужно связанные бд, мне надо сделать так, чтобы это хотя бы работало на НЕ моем ПК

Спасибо за ответы, всем.
И появилась идея.
Типа найти путь из которого запускается EXE:
C#
1
Environment.CurrentDirectory;
И через string указать путь к БД. Будет ли это работать?

Но скорее всего попробую SQLlite
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 15:43
Вам нужно запустить программу на "экзаменационном" ПК ?
Если да, то SQLite
1
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
01.06.2021, 15:52
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
мне надо сделать так, чтобы это хотя бы работало на НЕ моем ПК
На другом ПК есть LocalDB? Если есть, то можно строку переделать вот так
C#
1
2
3
4
5
6
7
8
string cString = "Data Source=(LocalDB)\MSSQLLocalDB;" +
                             "AttachDbFilename={0}\Database.mdf;" +
                             "Integrated Security=True";
string dir = string.Empty;
 
dir = .... ;// берём откуда надо
 
string fullConnString = string.Format(cString, dir); // полная строка
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 15:56
В любом ВУЗе есть сетевые SQL-сервера, причем обычно 5-7 типов (ORACLE, MS, PostgreSQL, FB, MySQL, DB2 и т.д.)
Язык SQL для этих серверов отличается. Читая курс SQL препод должен был оговаривать, для какого типа сервера пишутся запросы. И демонстрировать их работу на соответствующем сервере.
Давая задание, препод наверняка явно указывал тип сервера.
Похоже, лекции Вы прогуляли, а задание полностью не прочитали или не поняли.

Кроме того, в задании должна была четко прописана Connectionstring со всеми потрохами для того, чтобы на "экзаменационоом" ПК приложение работало с тем сервером, которое имел в виду препод.

Добавлено через 3 минуты
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
На другом ПК есть LocalDB?
Откуда ТС может это знать ?
Представьте картину: ТС приходит сдавать курсач, в аудитории стоит какой-то системный блок с неизвестной начинкой.
ТС спрашивает первым делом: "А есть тут локалдб ?".
0
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
01.06.2021, 15:59  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
Давая задание, препод наверняка явно указывал тип сервера.
Похоже, лекции Вы прогуляли, а задание полностью не прочитали или не поняли.
Не не не
Данное задание - курсач, тем более по ООП. Просто тема курсача подразумевает использовании БД. Так что я не знаю, в каких условиях будет тестировать и осматривать прогу препод по ООП.
Так что раз говорите про SQLite, по пересяду на него. Так что в принципе на вопрос ответ получен
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
01.06.2021, 16:00
Цитата Сообщение от MsGuns Посмотреть сообщение
Откуда ТС может это знать ?
От препода Если выдано задание на MS SQL Server (LocalDB), значит он там должен быть
0
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
01.06.2021, 16:00  [ТС]
А все запросы и тд препод по БД нам показывал на примере MS SQL
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
01.06.2021, 16:01
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
на примере MS SQL
Ну вот и всё, вопрос решен
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 16:06
Цитата Сообщение от MyTh1c2L Посмотреть сообщение
А все запросы и тд препод по БД нам показывал на примере MS SQL
Значит, доступ к MS SQL с "экзаменационного" ПК будет.
Тогда все, что Вам нужно, это параметры соединения хранить в настройках программы и перед запуском приложения их исправить на те, что Вам даст препод.
Ну, или дописать в приложении код для выбора сервера и базы - тогда сеттинги не нужны.
0
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 62
01.06.2021, 16:10  [ТС]
Ну я все же SQLite попробую
Спасибо за ответы еще раз)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2021, 16:10
Помогаю со студенческими работами здесь

Ошибка Selenium: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
IWebDriver driver; FirefoxDriverService serv = FirefoxDriverService.CreateDefaultService(); ...

Ошибка при работе с БД: Подключение не было закрыто. Подключение открыто
Здравствуйте! Столкнулся с проблемой. Вскакивает ошибка при работе с БД, когда проект запускаю из-под среды Подключение не было закрыто....

Подключение по RDP, После активации ключа касперского отвалилось подключение
Подскажите в чем может быть проблема. После активации ключа (продление) касперского (Endpoint 10) на сервере отвалилось подключение по RDP...

Подключение к серверу через удалённое подключение к рабочему столу из интернета
Поставил Windows Server 2016 на машину. запустил. Создал пользователей. Разрешил подключение к рабочему столу пользователям и вообще....

Подключение к облаку через подключение сетевого диска в проводнике - не работает
Всех приветствую, имеется Windows 7x64 Corporate, хочу подключиться к облакам яндекса и мэйла все делаю по инструкции ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru