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

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

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

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

15 ответов

Решение

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

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

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

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

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

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

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

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

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

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


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

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

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

Это должно быть в пределах <configuration> узел:

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

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

Соединение в 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{}

В заголовке

using System.Configuration;

в коде

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

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

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

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

Скорее всего, вы обнаружите тэг connectionstring в web.config после <appSettings>

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

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

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

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

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

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

Я просто нашел! Вам нужно установить это строковое соединение и указать непосредственно на вашу базу данных. Тот же случай на сервере.

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

Оно работает!!:)

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

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

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

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

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

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

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

Другие вопросы по тегам