Як отримати з'єднання String з бази даних


197

Я створив базу даних з Studio SQL Server Management Studio, я хотів би зараз використовувати її в моєму додатку C #. Мені потрібна рядок з'єднання?

Де я можу знайти рядок з'єднання та де зберігається моя база даних?

Чи потрібно його публікувати чи щось подібне, чи це десь у моїх документах?

using (var conn = new SqlConnection("your connection string to the database"))

Як отримати рядок з'єднання ? Де я можу знайти рядок з'єднання для копіювання пасти у вищевказаний розділ?

Як опублікувати свою базу даних, щоб Visual Studio міг забрати її? Тоді я можу просто потягнути туди рядок з'єднання?


Погляньте, як генерувати рядок з'єднання youtu.be/1WgO7CDSmu8
anomepani

Відповіді:


201

Найпростіший спосіб отримати рядок з'єднання - це використання вікна «Провідник сервера» у Visual Studio (меню « Перегляд» , « Провідник сервера» ) та підключення до сервера з цього вікна.

Потім ви можете побачити рядок з'єднання у властивостях підключеного сервера (виберіть з'єднання та натисніть F4 або Alt + Enter або виберіть "Властивості" у меню правої кнопки миші.

Розширені налаштування рядка з'єднання: під час створення з'єднання ви можете змінити будь-який з розширених параметрів рядка з'єднання, наприклад MARS, стійкість, часовий інтервал, конфігурацію об'єднання тощо, натиснувши кнопку "Розширений ..." в нижній частині вікна " Діалогове вікно "Додати з'єднання". Пізніше ви можете отримати доступ до цього діалогового вікна, клацнувши правою кнопкою миші З'єднання даних та вибравши "Змінити з'єднання ...". Доступні додаткові параметри залежать від типу сервера.

Якщо ви створюєте базу даних за допомогою SQL Server Management Studio, база даних буде створена в екземплярі сервера, так що для розгортання програми вам доведеться зробити резервну копію бази даних і розгорнути її в розгортанні SQL Server. Крім того, ви можете використовувати файл даних за допомогою SQL Server Express (localDB в SQL Server 2012), який буде легко поширюватися разом із вашим додатком.

Тобто, якщо це програма ASP.NET, там є папка App_Datafolder. Якщо ви клацніть правою кнопкою миші, ви можете додати новий елемент, який може бути базою даних SQL Server. Цей файл буде у цій папці, працюватиме з SQL Express і буде легко розгортатися. Для цього вам потрібно встановити SQL Express / localDB, щоб працювати.


2
Я так розумію, і мені це подобається: D, але ви могли б пояснити більше про те, як зробити резервну копію, а потім розгорнути? мої знання про MS SQL Server погані, я почав використовувати його близько години тому: \
Pomster

Чи є сервер realsql? ви будете використовувати сервер-експрес sql? чи достатньо це для компактної версії SQL Server? Ми не можемо отримати те, що ви можете використовувати, якщо не дасте додаткової інформації
JotaBe

1
Я використовував MS SQl Server Management Studio 2008, MS SQL Management Studio для створення бази даних. Я використовував запит для створення деяких стовпців. Тепер я хочу заповнити його моїм додатком C #
Pomster

Чи буде цей додаток розгорнутий? Чи будете ви використовувати його локально? Ви заперечуєте проти того, який саме сервер потрібен ?. Мені не потрібно знати, як ви зробили свою базу даних, але де і чому. Я не можу здогадатися, що тобі потрібно !!!
JotaBe

Я буду використовувати його локально, я не те, що ти просиш мене дати тобі?
Pomster

113

Дуже простий спосіб отримати рядок з'єднання - це створити текстовий файл, змінити розширення з .txt на .udl .

Подвійне клацання файлу .udl відкриє майстра властивостей Data Link .

Налаштуйте та протестуйте підключення до сервера вашої бази даних.

Закрийте майстра та відкрийте файл .udl з текстовим редактором на ваш вибір і просто скопіюйте рядок з'єднання (без Provider=<driver>частини), щоб використовувати його у вашій програмі C #.

зразок вмісту файлу udl

[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;Initial File Name="";Server SPN=""

що потрібно скопіювати з нього

Integrated Security=SSPI;Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;

Якщо ви хочете вказати ім'я користувача та пароль, ви можете прийняти з інших відповідей.

Підручник: https://teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/


Якщо це не працює, є деякі регістрові файли, які внесуть зміни реєстру, щоб увімкнути / вимкнути розширення UDL. Я зазвичай шукаю * .reg в папці Windows.
AMissico

Погляньте на створення та збереження рядка підключення у файлі веб-конфігурації youtu.be/1WgO7CDSmu8
anomepani

20

На connectionstrings.com ви можете знайти рядок з'єднання для кожного постачальника даних. Рядок з'єднання складається з певних атрибутів / властивостей та їх значень. Для SQL-сервера 2008 він виглядає приблизно так (стандартно, що вам тут знадобиться):

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

на myServerAddress, напишіть ім'я вашого встановленого примірника (за замовчуванням це .\SQLEXPRESSдля SQL Server Express Edition). Початковий каталог = назва вашої бази даних, ви побачите її в SSMS зліва після підключення. Решта говорить сама за себе.

редагувати

Вам потрібно буде пропустити ім’я користувача та пароль для автентифікації Windows та додати Integrated Security=SSPI.


11

Якщо ви встановили та налаштували MS SQL Server та Management Studio, перейдіть до Visual Studio (Visual Studio, а не SQL Server Management Studio).

1] У Visual Studio перейдіть до Інструменти -> Підключення до бази даних .

2] У розділі Ім'я сервера Виберіть ім’я сервера баз даних (список нехай заселяється, якщо його потребує час).

3] У розділі Підключення до бази даних виберіть Вибрати або введіть ім'я бази даних .

4] Виберіть Базу даних із спадного меню.

5] Вибравши Базу даних, спробуйте тест підключення.

6] Якщо тест-з'єднання вдалося, натисніть кнопку Ок.

7] У Visual Studio перейдіть до Перегляд -> Провідник сервера .

8] У вікні провідника сервера під розділом Підключення даних виберіть базу даних. Клацніть правою кнопкою миші свою базу даних -> Клацніть Властивості .

9] У вікні " Властивості" ви побачите рядок з'єднання .


9

Моє рішення полягало у використанні (2010).

На новому аркуші виберіть комірку, а потім:

Data -> From Other Sources -> From SQL Server 

покласти в імені сервера , виберіть таблицю , і т.д.,

Коли ви перейдете до діалогового вікна "Імпорт даних",
натисніть Propertiesу діалоговому вікні "Властивості підключення",
виберіть вкладку "Визначення".

І там Excel чудово відображає рядок підключення для копіювання
(або навіть експорт файлу з'єднання ... )


Це прекрасно працює і не вимагає встановлення з'єднання в VS.
Робіно

Ха-ха, це надзвичайно креативний, але ефективний спосіб отримати це. Я спробував це спочатку просто тому, що це не вимагало будь-яких необхідних залежностей. Дякую.
Тодд

3

помістіть тег нижче у файл web.config у вузлі конфігурації

 <connectionStrings>
<add name="NameOFConnectionString" connectionString="Data Source=Server;Initial Catalog=DatabaseName;User ID=User;Password=Pwd"
  providerName="System.Data.SqlClient" />

то ви можете використовувати вище з'єднання, наприклад,

SqlConnection con = new SqlConnection();
            con.ConnectionString = ConfigurationManager.ConnectionStrings["NameOFConnectionString"].ToString();

3

Якщо використовується інструмент Linqpad, після підключення до цільової бази даних із з'єднань можна отримати рядок з'єднання, який потрібно використовувати.

  1. Клацніть правою кнопкою миші на підключенні до бази даних.
  2. Виберіть Properties
  3. Виберіть Advanced
  4. Виберіть Copy Full Connection String to Clipboard

Результат: Data Source=.\jabberwocky;Integrated Security=SSPI;Initial Catalog=Rasa;app=LINQPad

введіть тут опис зображення


Видаліть app=LinqPadзалежно від драйверів та інших елементів, таких як Serverзамість джерела, можливо, вам доведеться налаштувати драйвер відповідно до цільової роботи; але це дає один стартовий майданчик.


2
Я схвалюю цю посаду
Jabberwocky

1

База даних сервера sql буде збережена за замовчуванням у наступному шляху

<drive>:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data\

, де <drive>інсталяційний привід, а X - номер екземпляра (MSSQL.1 для першого примірника двигуна бази даних). У порядку введення рядка з'єднання слід знати, як називається сервер бази даних sql-сервера, де ви зберігаєте, а потім екземпляр сервера баз даних.

Як правило, ім'я сервера буде подібне до ip-адреси машини, де додається база даних, а за замовчуванням екземпляр буде SqlExpress

Рядок підключення містить джерело даних імені тобто ім'я сервера, Initial каталог тобто ім'я бази даних, ім'я користувача , тобто авторизуватися ідентифікатор користувача бази даних, пароль тобто пароль для входу в базі даних.


1
Як я можу отримати рядок з'єднання?
Pomster

1
Я подивився на програмні файли \ Microsoft SQl Server, і я поняття не маю, що шукаю?
Pomster

вам не потрібно шукати папку зберігання бази даних, перегляньте посилання, яке я надав для рядка з'єднання, і напишіть рядок з'єднання.
Сай Каліян Кумар Аксінтала

0

Якщо ви створили Менеджер підключень у своєму проекті, ви можете просто витягнути звідти рядок з'єднання.

String connection = this.dts.connections["<connection_manager_name>"];

І використовувати це з'єднання в:

using (var conn = new SqlConnection(connection))

Будь ласка, виправте мене, якщо я помиляюся.


0

Найпростіший спосіб, мої друзі, - це відкрити вкладку провідника сервера на візуальній студії 2019 (в моєму випадку), а потім спробувати створити підключення до бази даних. Створивши вдале з'єднання, клацніть правою кнопкою миші та перейдіть до властивостей. Там ви знайдете поле з'єднання рядків з правильним синтаксисом! ... Це працювало для мене, тому що я знав ім'я мого сервера до рук .... просто не міг з’ясувати правильний синтаксис, щоб запустити мій ешафот ef ...


-2
SqlConnection con = new SqlConnection();
con.ConnectionString="Data Source=DOTNET-PC\\SQLEXPRESS;Initial Catalog=apptivator;Integrated Security=True";

2
Як це відповідає на питання ОП?
Фільбурт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.