Настройка строки подключения в 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

Ответы:


149

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

4
Интересно, сколько людей скопировали и вставили эту строку ... :-) Думаю, я уже 30-й раз отвечаю на этот вопрос ... может, мне стоит выучить его наизусть.
Ayo Adesina

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

@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может быть более технически правильным.
Crush

2
using System.Data.SqlClient;
Еще

21

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

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

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

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

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

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

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


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

Я новичок в 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
Нихил Тамханкар

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>

В 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*);

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, напишите под заданным 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");

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>

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

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


1

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

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

ОП спрашивает "где в 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

Дочерний тег тега «configuration», подробнее docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
Guy,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.