Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 246

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 240 241 242 243 244 245 < 246 > 247 248 249 250 251 252 .. 404 >> Следующая


// Наполнение объекта DataSet с по нощью запроса,

П определенного ранее для объекта D ^Adapter thnAdapter.Fill(thisDataSet, 'Customers')г ¦

Н Вывод данных до «несения изменений Console.WriteLinef'name before change: (0)',

thisDataSi .Tables['Customers']-Rows[9)I'CompanyName']),-

// Внесение иэ> !неки* i данные: таблица Customers,

/ / строка 9, столбец CompanyName '

thisDataSet.Tables['Customers*].Rowe[9][СотрапуКаш*] * 'Acme, Inc.'»

. // Обращение к команде Update для внаевни. иэменени

И соответствующую таблицу thisAdapter.Update{thisDataSet, 'Customers'};

Console.HriteLinef'name after change. {0}',

thisDataSet.Tables['Customers'].Rows[9]{'CompanyName']);

thisConnection.Close();

>

)

В процессе выполнения программа выведет следующий выходной поток:

name before change: Bottom-Dollar Markets

{название до внесения изменений) name before change: Acme, Inc,

(название после внесения изменении)

Теперь разберем детально исходную программу.

Как это работает

Первая часть программы аналогична предыдущему примеру; мы создаем объект соединения с помощью строки соединения и устанавливаем само соединение:

SqlConnection thisConnection = new SqlConnecticnt

0‘Data Source=(local)jIntegrated security=SSPl;¦ +

'Initial Catalog>northwind*); thisConnection.OpenO ;
530

Глава 19

Затем мы создаем объект нового типа DataAdapter:

SqlDotaAdapter thisAdapter ¦ new SqlDataAdapter(

•SELECT CustomeriD, CompanyName FROM Customers', thisCormection);

Объект DataAdapter является гораздо более многоцелевым, чем объект DataReadef, этот объект используется для самых разнообразных типов операций с данными, включая запросы, изменения н удаление. Мы инициализируем его с тем же самым SQL-запросом, что н командный объект в предшествующем примере.

Объект CommandBuitder

В простом случае внесения изменений в единственную таблицу не требуется знать, каким образом следует записывать SQL-команду, осуществляющую обновление данных; в этом случае можно воспользоваться удобным объектом command-Buiider, который автоматически построит необходимые SQL-операторы н привяжет

ИХ К Объекту DataAdapter!

SqlComroandBuilder thisBuilder - new SqlCommandBuilder(thisAdapter);

Заметьте, что мы передаем объект thisAdapter конструктору объекта command-Buiider в качестве аргумента. Далее происходит создание корректных SQL-команд и привязка их к переданному объекту DataAdapter в момент создания конструктором объекта commandBuilder. Ниже в настоящей главе мы познакомимся и с другими SQL-операторами, а пока SQL выполняет всю работу за нас.

Объект DataSet

Теперь следует ввести объект, значимость которого будет становиться очевидной по мере дальнейшего обсуждения. Это объект DataSet:

DataSet thisDataSet = new DataSet I)j

Объект DataSet занимает центральное место в ADO.NET; он исполиуется во всех операциях, независимо от их сложности. В Dataset содержится набор связанных объектов DataTabie, представляющих таблицы базы данных, с которой ведется работа. У кажДОГО Объекта DataTabie НМеЮТСЯ ДОЧерНИе Объекты DataRow И Data-column, которые соответственно представляют строки и столбцы таблицы нз базы данных. Как вскоре будет видно, эти объекты позволяют осуществлять доступ ко всем отдельным элементам таблиц, строк и столбцов.

Метод Fill объекта DataAdapter

До того как использовать объект DataSet, необходимо наполнить его данными из базы данных. С этой целью используется метод Fill о объекта DataAdapter. Почему метод Fill о является методом объекта DataAdapter, а не объекта DataSec? Потому что Dacaset является абстрактным представлением данных в памяти, в то время как DataAdapter является объектом, который осуществляет привязку объекта DataSet к конкретной базе данных, В качестве первого параметра методу Fill о передается объект, который должен быть наполнен, а в качестве второго параметра — имя объекта DataTabie внутри объекта DataSet, в котором содержатся интересующие нас данные:

thisAdapter.FilHthisDataSet, 'Customers');

В данном случае требуется таблица Customers, поэтому мы обращаемся к соответствующему объекту DataTabie в объекте DataSet с тем же именем. После того как объект DataSet оказывается наполненным, у нас появляется .возможность обращаться к отдельным строкам и столбцам.
Доступ к данным посредством ADO.NET________________________________________________________531

Осуществление доступа к таблицам, строкам и столбцам в объекте DataSet

Посмотрим, как выглядят данные до внесения о них изменений:

Console.WriteLine('name before change: CO)',

thisDataSet.Tables['Customers'].Rows[9]['CorapanyName'1);

Что здесь происходит? Мы выводим столбец CompanyName из строки с индексом, равным 9, из таблицы Customers, что приводит к получению выходного потока следующего вида:

name before change: Bottom-Doilar Markets

(название до внесения изменений)

Сложное выражение, начинающееся с thisDataSet имеет значение 'Bottom-Doiiar Markets'. Рассмотрим детально, из чего оно состоит:
Предыдущая << 1 .. 240 241 242 243 244 245 < 246 > 247 248 249 250 251 252 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.