Работа с объектами соединения

Работа с объектами соединения

Первым шагом в работе с поставщиком данных является создание соединения с источником данных, для чего мы используем объект соединения (который, как вы помните, получается из Disconnection). Типы соединения .NET получают на вход форматированную строку соединения, содержащую набор пар имен и значений, разделенных точками с запятой. Эта информация используется для идентификации машины, с которой требуется установить соединение, параметров безопасности, имени базы данных на удаленной машине и других данных, связанных с конкретным поставщиком данных.

По предыдущему программному коду вы можете заключить, что имя Initial Catalog (исходный каталог) дает ссылку на базу данных, с которой вы пытаетесь соединиться (Pubs, Northwind, Cars и т.д.). Имя Data Source (Источник данных) идентифицирует имя машины, поддерживающей базу данных (для простоты здесь предполагается, что для администраторов локальной системы никакого пароля не требуется).

Замечание. Чтобы узнать больше о парах имен и значений для той конкретной СУБД, которую используете вы, в документации .NET Framework 2.0 SDK найдите и прочитайте описание свойства ConnectionString объекта соединения для вашего поставщика данных.

После создания строки соединения само соединение с СУБД устанавливается с помощью вызова Open(). В дополнение к ConnectionString, Open() и Close() объект соединения предлагает еще целый ряд членов, которые позволяют настроить дополнительные параметры соединения, например, такие, как время ожидания и свойства транзакций. Описания некоторых членов базового класса DbConnection предлагаются в табл. 22.6.

Таблица 22.6. Члены типа DbConnection

Член Описание
BeginTransaction() Метод, используемый для начала транзакции
ChangeDatabase() Метод, используемый для смены базы данных при открытом соединении
ConnectionTimeout Доступное только для чтения свойство, возвращающее значение времени ожидания установки соединения, прежде чем будет сгенерирована ошибка (значением по умолчанию является 15 секунд). Чтобы изменить значение, используемое по умолчанию, укажите в строке соединения требуемое значение Connect Timeout (Например, Сonnect Timeout=30)
Database Свойство, сообщающее имя базы данных, используемой объектом соединения
DataSource Свойство, сообщающее информации о месте размещения базы данных, используемой объектом соединения
GetSchema() Метод, возвращающий объект DataSet, который содержит схему базы данных, полученную от источник данных
State Свойство, устанавливающее текущее состояние соединения в соответствии со значениями из перечня ConnectionState

Как видите, свойства типа DbConnection в большинстве своем доступны только для чтения (в силу своей природы) и оказываются полезными только тогда, когда вы хотите получить характеристики соединений в среде выполнения. Чтобы переопределить значение, устанавливаемое по умолчанию, вы должны изменить строку соединения. Например, следующая строка соединения увеличивает время ожидания соединения с 15 до 30 секунд (путем указания соответствующего значения в сегменте Connect Timeout строки соединения).

static void Main(string[] args) {

 SqlConnection cn = new SqlConnection();

 cn.ConnectionString = "uid=sa;pwd=;initial Catalog=Cars;" +

  "Data Source= (local);Connect Timeout = 30";

 cn.Open();

 // Новая вспомогательная функция (см. ниже).

 ShowConnectionStatus(cn);

 …

}

В этом фрагменте программного кода обратите внимание на то, что теперь объект соединения передается в виде параметра новому вспомогательному статическому методу ShowConnectionStatus() класса Program, реализованному так, как показано ниже.

static void ShowConnectionStatus(DbConnection cn) {

 // Отображение информации о текущем объекте соединения.

 Console.WriteLine("***** Информация о соединении *****");

 Console.WriteLine("Размещение базы данных: {0}", cn.DataSource);

 Console.WriteLine("Имя базы данных: {0}", cn.Database);

 Console.WriteLine ("Время ожидания: {0}", cn.ConnectionTimeout);

 Console.WriteLine("Состояние соединения: {0} ", cn.State.ToString());

}

Большинство указанных свойств самоочевидно, Но свойство State все же требует некоторого обсуждения. Этому свойству можно назначить любое значение из перечня ConnectionState

public enum System.Data.ConnectionState {

 Broken, Closed,

 Connecting, Executing,

 Fetching, Open

}

но единственными действительными значениями ConnectionState являются ConnectionState.Open и ConnectionState.Closed (остальные члены этого перечня зарезервированы для использования в будущем). Также заметим, что вполне безопасно закрыть соединение, состоянием которого в настоящий момент является ConnectionState.Closed.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Завершение построения модели: работа с объектами

Из книги Домашний архитектор. Подготовка к ремонту и строительству на компьютере автора Булат Виталий

Завершение построения модели: работа с объектами Любой дом невозможен без крыши и практически не обходится без подвальных помещений и лестниц. Этот раздел продолжит рассмотрение примера, начатого ранее, и послужит руководством для использования перечисленных объектов


Практическая работа 53. Запуск Access. Работа с объектами базы данных

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Практическая работа 53. Запуск Access. Работа с объектами базы данных Задание. Ознакомиться с окном программы Access. Запустить и рассмотреть учебную базу данных. ВНИМАНИЕ При выполнении задания помните, что все внесенные в базу данных изменения записываются немедленно и их


Работа с MBV-объектами

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Работа с MBV-объектами Наши первые приложения удаленного взаимодействия позволяли доступ клиентов к одному WKO-типу. Напомним, что WKO-типы (по определению) являются MBR-типами, поэтому доступ клиента к ним осуществляется через агента-посредника. В противоположность этому,


Работа с объектами команд

Из книги ArCon. Дизайн интерьеров и архитектурное моделирование для всех автора Кидрук Максим Иванович

Работа с объектами команд Теперь, когда вы понимаете роль объекта соединения, мы выясним, как предъявить SQL-запрос базе данных. Тип SqlCommand (который получается из DbCommand) является объектом представлением SQL-запроса, имени таблицы или хранимой процедуры. Вид соответствующей


Работа с объектами чтения данных

Из книги Adobe InDesign CS3 автора Завгородний Владимир

Работа с объектами чтения данных После создания активного соединения и SQL-команды следующим шагом является предъявление запроса источнику данных. Как вы, наверное, догадываетесь, это можно сделать несколькими способами. Тип DbDataReader (реализующий IDataReader) обеспечивает самый


Работа с объектами параметризованных команд

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Работа с объектами параметризованных команд Показанная выше программная логика вставки, обновления и удаления работает так, как и ожидается, однако обратите внимание на то, что каждый из SQL-запросов здесь представлен "жестко" закодированными строковыми литералами. Вы,


Глава 4 Режим конструирования и работа с объектами

Из книги Справочник по PHP автора

Глава 4 Режим конструирования и работа с объектами • Дополнительные объекты конструирования• Воспроизведение окружающего рельефа• Создание сечений• Итог: расширенный порядок построения модели дома в ArConИз предыдущей главы вы смогли узнать, с чего нужно начинать


Глава 11 Работа с объектами

Из книги VBA для чайников автора Каммингс Стив

Глава 11 Работа с объектами Теперь, когда мы научились создавать объекты Adobe InDesign, поговорим о том, что с ними делать. Этот разговор вынесен в отдельную главу по очень простой причине: все операции по перемещению, трансформации, копированию выполняются, по сути, одинаково


Работа с объектами и ссылками

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

Работа с объектами и ссылками Вернемся к более приземленным проблемам и рассмотрим, как программные системы работают с объектами, как создают и используют гибкие структуры данных.


Работа с утилизированными объектами

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Работа с утилизированными объектами Для реализации fresh и recycle, можно среди других возможных вариантов представить available как стек: fresh будет удалять элемент из стека, а recycle будет помещать элемент в стек. Создадим класс STACK_OF_LINKABLES для этого случая и добавим следующие


Из PHP в Excel: работа с COM-объектами

Из книги CorelDRAW X4. Начали! автора Жвалевский Андрей Валентинович

Из PHP в Excel: работа с COM-объектами Данная серия статей посвящена созданию документов Excel при помощи PHP. Данная возможнось может понадобиться, например, если нужно предоставить пользователю загружаемые данные в виде листов Excel. Это могут быть прайсы на продукцию,


6.3.6. Управляем объектами

Из книги автора

6.3.6. Управляем объектами Для выполнения заданий нам понадобится материал разд. 5.3.3.Вспомним, какие действия будут происходить на слайде.? Звук начинает проигрываться с самого начала С самого же начала появляется текст с фоном.? Затем при чтении слова «Ивашка» появляется


Работа с объектами и их экземплярами

Из книги автора

Работа с объектами и их экземплярами Перед тем как начать работу с экземпляром какого-либо объекта, его нужно создать. Создание экземпляра объекта выполняется с помощью оператора new: <Переменная> = new <Имя объекта>([<Список параметров, разделенных запятыми>]) После


Глава 8 Работа с растровыми объектами

Из книги автора

Глава 8 Работа с растровыми объектами Мы убеждены, что растровые объекты лучше всего обрабатывать в редакторах растровой графики и только после этого использовать их в CorelDRAW. Частично эту мысль разделяют и разработчики программы, потому что простейшее действие со