Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 23

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 17 18 19 20 21 22 < 23 > 24 25 26 27 28 29 .. 260 >> Следующая

Л.ХШКТ предоставляет вам альтернативу. Можно написать пару строк кода и предоставить ADO.NET автоматически определять структуру результатов или написать код большего объема, включающий метаданные о структуре результатов вашего запроса.
Почему выбирают способ, при котором требуется писать больший объем кода? В основном из-за расширенной функциональности и повышенной производительности. Но как больший объем кода повышает производительность приложения? Это не очевидно, так ведь?
При создании программ, отличных от средств выполнения нрпиглод!. ;ых запросов, вам обычно известна структура набора результатов вашего запроса. Например, большая часть ADO-кода выглядит так:
Dim rs as Recordset 'Объявшим прочие переменные
'Инициализируем переменные и открываем соединение с БД
rs.Open strSOL, cnDatabase, adOpenStatic, adLockOptimistic, adCmdText Do While Not
Listl.Addltem rs.Fields("UserName").Value
irs.MoveNext
Loop
В данном случае программист знает, что запрос содержит столбец I ist-rNaenc. Смысл в том, что вы, как обычно имеете представление, какие стол-
бцы и с каким типом данных вернет ваш запрос. Тем не менее ADO заранее неизвестно, как будут выглядеть результаты запроса. А значит, ей приходится обращаться к OLE DB-поставщику и задавать вопросы типа «Сколько столбцов в наборе результатов xmpi к .с-. «Каковы типы данных этих ст< >лоцо|Х. ¦ 11ринсм-жди пк- данных?» и «Какие поля первичного ключа таблиц упомянуты в запрос:''
Поставщик может ответить на некоторые из этих вопросов, но в большинстве случаев ему приходится обращаться к БД.
Для выборки результатов запроса и помещения их в объект DataSet ADO.NET должна знать ответы. Их можно дать самостоятельно или указать ADO.NET обратиться к поставщику. В первом случае производительность кода окажется выше, поскольку ADO.NET не придется запрашивать эти сведения у поставщика в период выполнения.
Написание кода для подготовки структуры объекта DataSet может стать очень задачей, хотя и позволяет повысить приложения.
ГЛАВА 1 Обзор ADO.NET 19
К Visual Studio включаетпредоспшляемме на этапе разработки сред-
ства доступа к данным, объединяющие в себе лучшие стороны обоих способов. Так, можно солдат.* Belsen на основе запроса, имени таблицы или хранимой процедуры, и затем мастер конфигурирования сгенерирует ADO.NET-код, необходимый для выполнения запроса и передачи изменений в БД. Подробнее об этом — в последующих главах книги.
Объекты DataSet со строгим контролем типов
Visual Studio упрощает разработку приложений для доступа к данным, генерируя объекты DataSet со строгим контролем типов. Предположим, у нас есть простая таблица Orders со столбцами CustomerlD и CompanyName. Писать код, аналогичный показанному ниже, не
Visual Basic .NET
Dim As DataSet
'Создаем и заполняем объект DataSet.
Console. WriteLtne(ds.Tables( "Customers" ).Rows(0)( "Customer-ID"))
Visual C#
DataSet ds;
//Создаем и заполняем объект DataSet
Console. WrlteLlne(ds.Tables["Customers"].Rows[0]["CustomerlD"]); Вместо этого можно написать такой код:
Visual Basic .NET
Dim ds As Ci;sto,«rsDataSet
"Создаем и заполняем объект DataSet
Console, WriteLine(ds. Customers(Q). CustoinerlD)
Visual C#
CustomersDataSet ds;
//'Создаем и заполняем объект DataSet
Console.WriteLlne(ds.Customers[01. CustomerlD);
Объект DataSet со строгим контролем типов — это просто класс, создаваемый Visual Studio .NET и предоставляющий информацию о таблицах и столбцах посредством свойств. Кроме того, объекты DataSet со строгим контролем типов предоставляют нестандартные методы для таких действий, как создание новых записей. Таким образом, вместо следующего кода:
Visual Basic
Dim ds as DataSet
'Код. создающий объект DataSet
'и объект DataTable под названием Customers Dim rowNewCustomer As DataRow rowHe*Custoser = ds.Tables("Customers").Newflow()
20
Часть Основы работы с Micfos.o1tADO.NbT
rowNewCustomerf "ClsstomerlD") = "ALFKJ rowNewCustomerrCompanyNane") = "Alfreds Futterkiste" ds,Tables("Customers").Rows.Add(rowNewCustomer)
Visual C#
DataSet ds;
//Код, создающий объект DataSet
//и объект DataTable под названием Customers
DataRow rowNewCustomer;
rowNewCustom? г = ds.Tablest"Custctners" ].NewRow(). rowNewCustomer["CustomerID"] = "ALFKI"; ro«NewCustoMer["CompanyName"] = "Alfreds Futterkiste"; ds.Tables["Customers"].Rows.Add(rowNewCustomer);
создать и добавить ноку-;; запись в таблицу можно посредством одной строки кода:
ds.Customers.AddCustomersRow("ALFKI", "Alfreds Futterkiste"}
Подробнее об объектах DataSet со строгим контролем — в главе
Вопросы, которые стоит задавать почаще
Несмотря на свое название, модель ADO.NET мало похожа на ADO. И хотя ADO.NET содержит классы, позволяющие подключаться к БД, выполнять запросы и получать их результаты, эта объектная модель сильно отличается от ADO. Вы уже знаете о многих отличиях. Далее я рассмотрю основные объекты иерархии ADO.NET. Однако для начала проясню некоторые вопросы, наиболее часто возникающие у разработчиков, только что перешедших на ADO.NET,
Предыдущая << 1 .. 17 18 19 20 21 22 < 23 > 24 25 26 27 28 29 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100