Читаем Язык программирования С# 2005 и платформа .NET 2.0. полностью

  myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

  // Цикл по результатам.

  while (myDataReader.Read()) {

  Console.WriteLine("-› Марка – {0}, имя – {1}, цвет – {2}.",

   myDataReader["Make"].ToString().Trim(),

   myDataReader["PetName"].ToString().Trim(),

   myDataReader["Color"].ToString().Trim());

  }

  // Поскольку был указан CommandBehavior.CloseConnection,

  // для соединения нет необходимости явно вызывать Close().

  myDataReader.Close();

 }

}

<p>Работа с объектами соединения</p>

Первым шагом в работе с поставщиком данных является создание соединения с источником данных, для чего мы используем объект соединения (который, как вы помните, получается из 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) {

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT