Настройка строки подключения в ASP.NET к SQL SERVER - PullRequest
89 голосов
/ 13 апреля 2011

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

В моем файле web.configКак и где разместить строку подключения?

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

Ответы [ 15 ]

140 голосов
/ 13 апреля 2011

Вы также можете использовать это, это проще.Единственное, что вам нужно установить, это "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>  
102 голосов
/ 19 сентября 2012

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

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

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);
19 голосов
/ 27 января 2012

Мне было очень трудно получить ответ, но в конце концов я понял это.Поэтому я напишу следующие шаги:

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

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

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

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

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

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


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

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


2. Теперь добавьте следующую строку кода в код C # позади, предпочтительно под определением класса (т.е. не внутри метода). Это указывает на корневую папку вашего проекта. По сути, это имя проекта.обычно расположение файла web.config (в этом случае мой проект называется MyProject.

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

3. Теперь добавьте следующую строку кода в код C # позади. Это устанавливает строковую константу дляна который вы можете ссылаться во многих местах вашего кода, если вам понадобится conString различными методами.

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

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

13 голосов
/ 13 апреля 2011

должно быть в узле <configuration>:

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

этот сайт имеет больше информации об этом:

5 голосов
/ 27 марта 2016

Соединение в WebConfig

<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{}
5 голосов
/ 19 апреля 2012

в заголовке

using System.Configuration;

в коде

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);
2 голосов
/ 03 марта 2018

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

1 голос
/ 15 января 2014

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

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

Скорее всего, вы обнаружите тег подключения в файле web.config после <appSettings>

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

1 голос
/ 10 октября 2012

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

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
1 голос
/ 02 марта 2012

Если вы хотите написать строку подключения в 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>

OR

вы прямо в файле 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");
...