Настройка строки подключения к ASP.NET к SQL SERVER

#asp.net #web-config #connection #connection-string

#asp.net #web-config #подключение #строка подключения

Вопрос:

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

Как и куда мне поместить строку подключения в моем web.config?

Вот как выглядит файл web.config прямо сейчас: http://imwired.net/aspnet/Online_web.config

Ответ №1:

Вы также можете использовать это, это проще. Единственное, что вам нужно установить, это «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>  
  

Комментарии:

1. Как использовать это в моем коде на C #, когда я хочу выполнить какой-либо запрос.

2. Вы можете просмотреть подробную информацию о строке подключения в dot net по адресу : connectionstrings.com/sql-server-2008

3. Интересно, сколько людей скопировали и вставили эту строку… 🙂 Я думаю, что это 30-й раз, когда я обращаюсь к этому вопросу …. может быть, мне стоит просто выучить его наизусть.

4. В этой версии отсутствуют атрибуты имени пользователя / пароля.

5. @Burgi Нет, это не пропущено (см. Integrated Security=True ?), это не нужно, потому что база данных считывает файл по своим разрешениям — попробуйте. Именно по этой причине я говорю, что это более просто, потому что вам не нужно их добавлять. Если вам не удается ее использовать, откройте свою базу данных и задайте там правильные разрешения для базы данных и для файлов

Ответ №2:

По какой-то причине я не вижу здесь простого ответа.

Поместите это в начало вашего кода:

 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>
  

и где вы хотите настроить переменную connection:

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

Комментарии:

1. WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString может быть более технически правильным.

2. Мне также понадобилось: using System.Data.SqlClient;

Ответ №3:

Мне было очень сложно получить ответ на этот вопрос, но в конце концов я с этим разобрался. Итак, я напишу шаги ниже.

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

  2. Далее (при необходимости), если вы пытаетесь получить доступ к базе данных на отдельном сервере, убедитесь, что вы можете сделать то же самое в SSMS. Итак, настройте SSMS на компьютере и убедитесь, что вы можете получить доступ к серверу с именем пользователя и паролем к этому серверу базы данных.

Если вы неправильно выполняете приведенные выше 2, вы просто теряете время, поскольку не можете получить доступ к базе данных. Это может быть либо потому, что пользователь, которого вы настраиваете, неверен, у него не включен удаленный доступ (при необходимости), либо порты не открыты (при необходимости), среди многих других причин, но эти являются наиболее распространенными.

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

  1. Запустите пустой проект, добавьте Linq по вашему выбору в SQL или Dataset (EF подходит, но строка подключения встроена в строку EF con, я хочу чистую) и подключитесь к вашей базе данных, используя детали, проверенные выше в con string wizzard. Добавьте любую таблицу и сохраните файл.

Теперь зайдите в web config, и, как по волшебству, вы увидите там красивую чистую рабочую строку подключения со всеми необходимыми деталями.


{ Приведенное ниже было частью старого поста, поэтому вы можете проигнорировать это, я оставляю это для справки, поскольку это самый простой способ доступа к базе данных только из кода. Пожалуйста, прокрутите страницу вниз и перейдите к шагу 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 шагов ваш код должен работать так же, как и раньше. Объясните причину, по которой вы сначала тестируете конфигурацию в ее оригинальном формате, чтобы узнать, связана ли проблема со строкой подключения или с кодом.

Я новичок в C #, ASP.Сеть и Sql Server. Поэтому я уверен, что должен быть лучший способ выполнить этот код. Я также хотел бы получить отзывы о том, как улучшить эти шаги, если это возможно. Я повсюду искал что-то подобное, но в конце концов разобрался с этим после многих недель напряженной работы. Глядя на это сам, я все еще думаю, что должен быть более простой способ.

Я надеюсь, что это полезно.

Ответ №4:

она должна находиться внутри <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

Ответ №5:

Подключение в 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>
  

В Class.Cs

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

Ответ №6:

в заголовке

 using System.Configuration;
  

в коде

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

Ответ №7:

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

Как в web.config файле:

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

connections.config Файл внешней конфигурации будет содержать раздел connections

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

</connectionStrings>  
  

Изменение содержимого внешнего файла конфигурации не приведет к перезапуску приложения (поскольку ASP.net выполняется по умолчанию при любом изменении файлов конфигурации приложения)

Ответ №8:

Если вы хотите записать строку подключения в Web.config, тогда пишите в соответствии с заданным sting

 <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");
  

Ответ №9:

Вы можете поместить это в свой web.config файл connectionStrings :

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

Ответ №10:

Вы можете использовать следующий формат:

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

Скорее всего, вы найдете тег connectionstring в web.config после <appSettings>

Попробуйте это.

Ответ №11:

Вы можете попробовать это. Это очень просто

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

Комментарии:

1. OP спросил «где в web.config».

Ответ №12:

Попробуйте это для вашей строки подключения.

  Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomainmyUsername;Password=myPassword;
  

Комментарии:

1. Добро пожаловать в Stack Overflow! Когда вы публикуете ответ на старый вопрос, полезно добавить некоторый контекст относительно того, почему ваш ответ лучше, чем старые. В противном случае он рискует быть пропущенным в нижней части списка ответов.

Ответ №13:

Я ТОЛЬКО ЧТО НАШЕЛ!! Вам нужно поместить эту строку в connection и указать непосредственно на вашу базу данных. Тот же случай на сервере.

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

Это работает !! 🙂

Ответ №14:

Сохраните строку подключения в web.config

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

Ответ №15:

Создайте раздел с именем <connectionStrings></connectionStrings> в вашем web.config inside <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 = против 110).aspx

Комментарии:

1. «Создайте раздел с именем <ConnectionStrings></ConnectionStrings> в вашем web.config» — где в web.config?

2. Дочерний элемент тега «configuration», дополнительная информация learn.microsoft.com/en-us/aspnet/mvc/overview/getting-started /…