Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6
После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.
Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:
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";";