Объект Connection
В ADO.NET объект Connection используется для подключения к определенному источнику данных путем предоставления в строке соединения сведений, необходимых для проверки подлинности. Используемый объект Connection зависит от типа источника данных. У каждого поставщика данных в платформе .NET Framework есть объект Connection.
поставщика данных .NET Framework |
объект Connection |
для SQL Server |
SqlConnection |
для OLE DB |
OleDbConnection |
для ODBC |
OdbcConnection |
для Oracle |
OracleConnection |
Открытие/закрытие соединения
Для создания соединения используется конструктор. В параметре конструктора указывается строка соединения. Также можно использовать конструктор без параметра, а строку подключения задавать как свойство после создания объекта. Но это необходимо делать до открытия соединения.
Для выполнения запросов и получения
данных из БД необходимо открыть
соединение.
После выполнения необходимых операций
рекомендуется всегда закрывать соединение
после использования, чтобы обеспечить
его возврат в пул.
Два варианта открытия соединения:
с использованием блока Using: автоматически удаляет соединение при выходе в коде из блока даже при наличии необработанного исключения.
без использования блока Using: необходимо явно использовать метод Close объекта соединения.
//Вариант №1
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
………….
}
//Вариант №2
SqlConnection connection = new SqlConnection(connectionString));
connection.Open();
…………
connection.Close();
Синтаксис строки соединения
Свойство ConnectionString получает или задает строку, используемую для подключения к базе данных. Строка соединения включает имя источника базы данных и другие параметры необходимые для установки исходного подключения. Значением по умолчанию является пустая строка.
Также строка соединения содержит сведения об инициализации, передаваемые в виде параметра от поставщика данных в источник данных. Синтаксис зависит от поставщика данных, и при попытке открыть соединение строка соединения анализируется. После проверки источник данных применяет параметры, указанные в строке соединения, и открывает соединение.
Формат строки соединения является списком разделенных точкой с запятой пар параметров «ключ-значение»: keyword1=value; keyword2=value;
В приведенной ниже таблице представлены основные имена для значений ключевых слов в ConnectionString (для SQL Server).
Ключевое слово |
Значение по умолчанию |
Описание |
AttachDBFilename -или- extended properties -или- Initial File Name |
Отсутствует |
Имя основного файла базы данных, включая полный путь к подключаемой базе данных. AttachDBFilename поддерживается только для первичных файлов данных с расширением MDF. Путь может быть абсолютным или относительным, заданным с использованием строки подстановки DataDirectory. Имена путей удаленного сервера, HTTP и UNC не поддерживаются. |
Connect Timeout -или- Connection Timeout |
15 |
Продолжительность времени ожидания подключения к серверу (в секундах) перед прекращением попытки подключения и генерацией ошибки. |
Data Source -или- Server -или- Address -или- Addr -или- Network Address |
Отсутствует |
Имя или сетевой адрес экземпляра SQL Server, к которому осуществляется подключение. |
Integrated Security -или- Trusted_Connection |
false |
Если задано значение false, в подключении заданы также параметры User ID и Password. Если задано значение true, для проверки подлинности используются текущие учетные данные Windows. Распознаваемые значения: true, false, yes, no и sspi |
Password -или- Pwd |
Отсутствует |
Пароль для входа в SQL-сервер. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. |
Persist Security Info |
false |
Когда задано значение false или no (настоятельно рекомендуется), важные сведения (такие, как пароль) не возвращаются как часть подключения, если оно открыто или когда-либо находилось в открытом состоянии. |
User ID |
Отсутствует |
Учетная запись входа в SQL Server. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. |
Использование строки замены DataDirectory
Свойство AttachDbFileName было расширено в ADO.NET 2.0 с введением строки замены |DataDirectory| (заключаемой в символы конвейера). Строка замены DataDirectory в сочетании с именем AttachDbFileName позволяет указывать относительный путь к файлу данных, тем самым позволяя разработчикам создавать строки соединения на основе относительного пути к источнику данных, не задавая полный путь. Физическое расположение, на которое указывает DataDirectory, зависит от типа приложения.
Транзакции
Транзакция состоит из одной команды или группы команд, которые выполняются как одна единица работы. Если в какой-либо точке транзакции возникает ошибка, может быть выполнен откат всех обновлений и возвращение к состоянию до начала транзакции. Если ошибки не возникают, обновления заканчиваются фиксированием транзакции как завершенной.
Выполнение транзакции
Вызовите метод BeginTransaction объекта SqlConnection для отметки начала транзакции. Метод BeginTransaction возвращает ссылку на транзакцию. Эта ссылка назначается объектам SqlCommand, прикрепленным к транзакции.
Присвойте объект Transaction свойству Transaction объекта SqlCommand.
Выполните требуемые команды.
Для выполнения транзакции вызовите метод Commit объекта SqlTransaction, для завершения транзакции вызовите метод Rollback. Транзакция откатывается, если соединение закрывается или пропадает до выполнения метода Commit либо Rollback.
