Налаштування рядка підключення в ASP.NET до SQL SERVER


96

Я намагаюся встановити підключувальний рядок у своєму файлі web.config (Visual Studio 2008 / ASP.NET 3.5) до локального сервера (SQL Server 2008).

У моєму web.config, як і де розмістити рядок підключення?

Ось як зараз виглядає файл web.config: http://imwired.net/aspnet/Online_web.config

Відповіді:


148

Ви також можете використовувати це, це простіше. Єдине, що вам потрібно встановити, це "YourDataBaseName".

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Де розмістити рядок з'єднання

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

Як використовувати його в моєму коді C #, коли я хочу виконати якийсь запит.
Nikhil Tamhankar

1
Ви можете побачити детальну інформацію про рядок з'єднання в точковій мережі з: connectionstrings.com/sql-server-2008
Vimal bhatt

4
Цікаво, скільки людей скопіювали та вставили цей рядок ... :-) Я думаю, що це вже 30-й раз, коли я був на цьому питанні .... можливо, мені слід просто вивчити його напам'ять.
Ayo Adesina

У цій версії відсутні атрибути ім’я користувача / пароль.
Бурджі

@Burgi Нічого цього не бракує (див. Integrated Security=True?), Це не потрібно, оскільки база даних зчитує файл за їхніми дозволами - спробуйте. Ось чому я кажу, що це простіше, тому що їх не потрібно додавати. Якщо ви не можете його використовувати, відкрийте свою базу даних і встановіть там правильний дозвіл на базу даних і на файли
Арістос

107

Чомусь я не бачу тут простої відповіді.

Помістіть це у верхній частині коду:

using System.Web.Configuration;
using System.Data.SqlClient; 

Помістіть це в Web.Config:

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

і де ви хочете встановити змінну з'єднання:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringможе бути більш технічно правильним.
розчавити

2
Мені також потрібно було:using System.Data.SqlClient;
nu everest

21

Мені було дуже важко отримати відповідь, але врешті-решт зрозумів це. Тому я напишу кроки нижче.

  1. Перш ніж налаштувати рядок підключення в коді, переконайтеся, що ви дійсно можете отримати доступ до бази даних. Почніть очевидно, увійшовши на сервер баз даних за допомогою SSMS (Sql Server Management Studio або це еквівалентно в інших базах даних) локально, щоб забезпечити доступ до вас із використанням усіх деталей, які ви збираєтеся використовувати.

  2. Далі (якщо потрібно), якщо ви намагаєтеся отримати доступ до бази даних на окремому сервері, переконайтеся, що можете зробити те ж саме в SSMS. Тож налаштуйте SSMS на комп’ютері та переконайтесь, що ви можете отримати доступ до сервера за допомогою імені користувача та пароля до цього сервера баз даних.

Якщо ви не правильно зрозуміли вищезазначені 2, ви просто витрачаєте час, бо не можете отримати доступ до бази даних. Це може бути через те, що користувач, якого ви налаштували, помилковий, не ввімкнув віддалений доступ (якщо потрібно), або порти не відкриваються (якщо потрібно), серед багатьох інших причин, але вони є найбільш поширеними.

Переконавшись, що ви можете отримати доступ до бази даних за допомогою SSMS. Наступним кроком, лише задля автоматизації процесу та уникнення помилок, є дозвіл системі виконувати роботу за вас.

  1. Запустіть порожній проект, додайте свій вибір Linq до SQL або набору даних (EF - це добре, але рядок з'єднання вбудований всередину рядка EF-con, я хочу чистий) і підключіться до вашої бази даних, використовуючи деталі, перевірені вище в майстер підрядів. Додайте будь-яку таблицю та збережіть файл.

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


{Нижче було частиною старого допису, так що ви можете проігнорувати це, я залишаю це для довідки як найпростіший спосіб отримати доступ до бази даних лише із коду позаду. Прокрутіть вниз і перейдіть до кроку 2 нижче. }

Припустимо, що наведені вище кроки починають з чогось на зразок такого, як рядок підключення в коді позаду:

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

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

Переконавшись, що вищезгаданий стиль працює, настав час зробити наступні кроки:

1. Експортуйте свій літеральний рядок (вміст у лапках, включаючи лапки) до наступного розділу файлу web.config (для кількох рядків підключення просто зробіть кілька рядків:

<configuration>
    <connectionStrings>
        <add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

{Вищезазначене було частиною старої публікації, після виконання 3-х найкращих кроків весь цей процес буде виконаний за вас, тож ви можете ігнорувати його. Я просто залишаю це тут для власної довідки. }


2. Тепер додайте наступний рядок коду до коду C # позаду, імовірно, просто під визначенням класу (тобто не всередині методу). Це вказує на кореневу папку вашого проекту. По суті, це назва проекту. Зазвичай це місце розташування файлу web.config (у цьому випадку мій проект називається MyProject.

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3. Тепер додайте наступний рядок коду до коду C # позаду. Це встановлює рядкову константу, до якої ви можете посилатися в багатьох місцях коду, якщо вам потрібна константа різними методами.

const string CONSTRINGNAME = "conString";

4. Далі додайте наступний рядок коду до коду C # позаду. Це отримує рядок з'єднання з файлу web.config з ім'ям conString (з константи вище)

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5. Нарешті, там, де ви спочатку мали б щось подібне до цього рядка коду:

SqlConnection con = new SqlConnection(conString)

ви заміните його таким рядком коду:

SqlConnection con = new SqlConnection(conString.ConnectionString)

Виконавши ці 5 кроків, ваш код повинен працювати так само, як і раніше. Уявіть причину, з якої ви спершу перевіряєте constring у оригінальному форматі, щоб знати, чи це проблема зі рядком підключення, чи проблема з кодом.

Я новачок у C #, ASP.Net та Sql Server. Тож я впевнений, що повинен бути кращий спосіб зробити цей код. Я також вдячний відгуку про те, як покращити ці кроки, якщо це можливо. Я весь час шукав щось подібне, але врешті-решт зрозумів це після багатьох тижнів напруженої роботи. Дивлячись на це сам, я все ще думаю, повинен бути простіший спосіб.

Я сподіваюся, що це корисно.


14

він повинен знаходитися в межах <configuration>вузла:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

на цьому сайті є додаткова інформація:


1
Як використовувати його в моєму коді C # позаду, коли я хочу виконати якийсь запит в asp.net 4
Nikhil Tamhankar

7

Підключення в WebConfig

Додайте рядок підключення до <connectionStrings>елемента у Web.configфайлі.

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

У класі

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

у заголовку

using System.Configuration;

в коді

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3

Ви також можете використовувати зовнішній файл конфігурації, щоб вказати розділ рядків підключення, і передати цей файл у файл конфігурації програми, як у web.config

Як web.configфайл у файлі:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

Зовнішній конфігураційний connections.configфайл буде містити розділ з'єднань

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

Змінення вмісту зовнішнього конфігураційного файлу не перезапустить програму (як це робить ASP.net за замовчуванням при будь-яких змінах у конфігураційних файлах програми)


2

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

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

АБО

ви прямо у файлі aspx.cs, наприклад

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2

Ви можете помістити це у свій web.configфайл connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

2

Ви можете використовувати наступний формат:

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Швидше за все, ви знайдете тег stringstring у web.config після <appSettings>

Спробуйте це.


1

Ви можете спробувати це. Це дуже просто

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

OP запитав "де в web.config".
Steve Smith

0

Спробуйте це для вашого рядка підключення.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;

Ласкаво просимо до Stack Overflow! Коли ви публікуєте відповідь на старе запитання, добре додати якийсь контекст щодо того, чому ваша відповідь краща за старі. В іншому випадку ризикують пропустити внизу списку відповідей.
Monolo

0

Я ПРОСТО ЗНАЙШЛИ !! Вам потрібно встановити це рядкове з’єднання і вказати безпосередньо на вашу базу даних . Той самий випадок на сервері.

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

Це працює!! :)


0

Зберігайте рядок підключення у web.config

Радимо зберігати рядок підключення для вашої програми у файлі конфігурації, а не як жорстко закодований рядок у коді. Спосіб зробити це різниться між .NET 2.0 та .NET 3.5 (і вище). Ця стаття охоплює обидва. https://www.connectionstrings.com/store-connection-string-in-webconfig/


-1

Створити розділ під назвою <connectionStrings></connectionStrings>вашого web.configвнутрішній <configuration></configuration>потім додати різні рядки підключення до нього, наприклад ,

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

Ось список усіх різних форматів рядків підключень https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


"Створити розділ під назвою <connectionStrings> </connectionStrings> у своєму web.config" - де в web.config?
Steve Smith

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