• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Architecture .NET

Устройства считывания данных

Если команда выполняется посредством использования метода 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).

Иллюстрированный самоучитель по Architecture .NET › Программирование в ADO.NET › Устройства считывания данных
Рис. 9.3. Просмотр содержимого таблицы Customers (Клиенты) и ее полей с помощью Server Explorer

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.