Строка подключения

Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6

Последнее обновление: 31.10.2015

После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.

Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:

class Program
{
    static void Main(string[] args)
    {
        string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
    }
}

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

Строка подключения представляет набор параметров в виде пар ключ=значение. В данном случае для подключения к ранее созданной базе данных usersdb мы определяем строку подключения из трех параметров:

  • Data Source: указывает на название сервера. По умолчанию это ".\SQLEXPRESS". Поскольку в строке используется слеш, то в начале строки ставится символ @. Если имя сервера базы данных отличается, то соответственно его и надо использовать.

  • Initial Catalog: указывает на название базы данных на сервере

  • Integrated Security: устанавливает проверку подлинности

Жесткое кодирование строки подключения (то есть ее определение в коде приложения), как правило, редко используется. Гораздо более гибкий путь представляет определение ее в специальных конфигурационных файлах приложения. В проектах десктопных приложений это файл App.config, а в веб-приложениях это в основном файл Web.config. Хотя приложение также может использовать другие способы определения конфигурации.

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
</configuration>

Изменим его, добавив определение строки подключения:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
  <connectionStrings>
   <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"
       providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

Для определения всех подключений в программе в пределах узла <configuration> добавляется новый узел <connectionStrings>. В этом узле определяются строки подключения с помощью элемента <add>. Мы можем использовать в приложении множество строк подключения, и соответственно также в файле можно определить множество элементов <add>.

Каждая строка подключения имеет название, определяемое с помощью атрибута name. В данном случае строка подключения называется "DefaultConnection". Название может быть произвольное.

Атрибут connectionString собственно хранит строку подключения, то есть весь тот текст, который мы выше определяли в методе Main. И третий атрибут providerName задает пространство имен провайдера данных. Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.

Теперь получим эту строку подключения в приложении:

using System;
using System.Configuration;

namespace AdoNetConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
            // получаем строку подключения
            string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
            Console.WriteLine(connectionString);

            Console.Read();
        }
    }
}

Прежде всего чтобы работать с конфигурацией приложения, нам надо добавить в проект библиотеку System.Configuration.dll.

С помощью объекта ConfigurationManager.ConnectionStrings["название_строки_подключения"] мы можем получить строку подключения и использовать ее в приложении.

Параметры строки подключения

  • Application Name: название приложения. Может принимать в качестве значения любую строку. Значение по умолчанию: ".Net SqlClient Data Provide"

  • AttachDBFileName: хранит полный путь к прикрепляемой базе данных

  • Connect Timeout: временной период в секундах, через который ожидается установка подключения. Принимает одно из значений из интервала 0–32767. По умолчанию равно 15.

    В качестве альтернативного названия параметра может использоваться Connection Timeout

  • Data Source: название экземпляра SQL Servera, с которым будет идти взаимодействие. Это может быть название локального сервера, например, "EUGENEPC/SQLEXPRESS", либо сетевой адрес.

    В качестве альтернативного названия параметра можно использовать Server, Address, Addr и NetworkAddress

  • Encrypt: устанавливает шифрование SSL при подключении. Может принимать значения true, false, yes и no. По умолчанию значение false

  • Initial Catalog: хранит имя базы данных

    В качестве альтернативного названия параметра можно использовать Database

  • Integrated Security: задает режим аутентификации. Может принимать значения true, false, yes, no и sspi. По умолчанию значение false

    В качестве альтернативного названия параметра может использоваться Trusted_Connection

  • Packet Size: размер сетевого пакета в байтах. Может принимать значение, которое кратно 512. По умолчанию равно 8192

  • Persist Security Info: указывает, должна ли конфиденциальная информация передаваться обратно при подключении. Может принимать значения true, false, yes и no. По умолчанию значение false

  • Workstation ID: указывает на рабочую станцию - имя локального компьютера, на котором запущен SQL Server

  • Password: пароль пользователя

  • User ID: логин пользователя

Например,если для подключения необходим логин и пароль, то мы можем их передать в строку подключения через параметры user id и password:

string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;User Id = sa; Password = 1234567fd";";
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850