Устройства считывания данных
Если команда выполняется посредством использования метода ExecuteReader объекта SqlCommand, то при этом возвращается экземпляр класса SqlDataReader. Этот объект можно использовать для перемещения по полученному набору данных. Для извлечения данных из текущей строки набора можно использовать имя столбца.
reader = command › ExecuteReader(); // читатель = команда › ExecuteReader (); if (reader!= 0) { Console::WriteLine( "CustomerldXtCompanyName"); while (reader › Read()) // Чтение Console::WriteLine ( "{0}\t\t{l}", reader › get_Item("Customerld"), reader › get_Item("CompanyName")); }
И в заключение, в блоке finally закрываются считывающее устройство и соединение.
if (reader!= 0) reader › Close(); if (conn › State == ConnectionState::0pen) // если открыто conn › Close();
Если соединение не закрыть явно, завершитель объекта SqlConnection, рано или поздно запущенный, закроет соединение. Но из-за того, что сборщик мусора не является детерминированным, никто не сможет сказать, когда это произойдет. Поэтому всегда закрывайте соединение явно. Если этого не сделать, будет использоваться больше соединений, чем необходимо (даже если вы организуете связной пул), что может снизить масштабируемость приложения. Кроме того, может исчерпаться запас соединений.
Приведем результат работы программы:
Customerld CompanyName ALFKI Alfreds Futterkiste ANATR Ana Trujillo Emparedados у helados ANTON Antonio Moreno Taqueria AROUT Around the Horn BERGS Berglunds snabbkop BLAUS Blauer See Delikatessen BLONP Blondesddsl pere et fils BOLID Bolido Comidas preparadas BONAP Bon app' BOTTM Bottom-Dollar Markets BSBEV B's Beverages …
Для проверки корректности работы программы можно использовать Server Explorer среды разработки Visual Studio .NET. Выберите в базе данных Northwind таблицу Customers (Клиенты) и щелкните на ней правой кнопкой для того, чтобы вызвать всплывающее меню. Выберите в нем пункт Retrieve Data from Table (Получить данные из таблицы) и, просмотрев данные, хранящиеся в таблице, сравните их с результатом работы программы. Наверняка вы заметите поразительное сходство (рис. 9.3).
Рис. 9.3. Просмотр содержимого таблицы Customers (Клиенты) и ее полей с помощью Server Explorer