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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 260 >> Следующая

При создании W'mtf.ows- или Web-приложения, использующего связывание с дзииыми. связать элементы управления с данными в период выполнения окажется гораздо проще, если вы задействуете объект DataSet со строгим контролем типов. Почему? Такой объект содержит собственную информацию схемы, и Visual Studio предоставит вам список таблиц и полей, с которыми можно связать элемент управления.
На рис. 9-4 показан пример. Выбрав объект DataRelation Customers-Orders, мы можем указать, что нам нужно просмотреть лишь заказы текущего клиента. Заметьте: сетка отражает структуру объекта i)atai<ii>k- Orders. Создавая этот пример, я не
написал какого-либо кода.
ЩгНЫНт* fedaCarmn &<un III iK hutme " [f ^ф^ц. | g . .„,-~---
Sa_-1-»-і
Рис. 9-4. Связывание с данными при помощи объекта DataSet со строгим контролем типов
Объекты DataSet со строгим контролем типов дают преимущества в период выполнения и разработчикам многоуровневых приложений. Если'добавитьссылку на библиотеку классов или Web-сервис, возвращающий объект DataSet со сгро-
338
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
гам контролем ^ у проекта будет собственная копия wi-ф.и из и файла класса, соответствующих классу DataSet со строгим контролем типов. Таким образом,
по-прежнему может использовать преимущества периода разработки, предоставляемые объектами DataSet со строгим контролем типов,
Преимущества периода выполнения
Как объекты DataSet со строгим контролем типов проявляют себя в период выполнения? Как они сказываются на производительности ваших прил: >>kci mfi? Код для к содержимому объекта DataSet со строгим контролем типов не только
более прост в написании, но и повышает производительность приложения. Ниже показан стандартный способ назначить содержимое столбца текстовому полю с использованием обычного объекта DataSet и объекта DataSet со строгим контролем ТИПОВ:
Visual Basic .NET
Без контроля типов Dim dsUntyped As New DataSet{) Создаем и заполняем DataSet
txtCempanyNaine. Text =
dsUntyped.Tables<"Customers").Rows(O)("CompanyName")
строгим контролем типов Dim dsTyped As New Chapter9() 'Заполняем DataSet
txtComp&fiyName.Text = dsTyped. Customers? 01. Company-Name
Visual C# .NET
//Без контроля типов
DataSet dsUntyped = new DataSetO;
//Создаем и заполняем DataSet
txtCompanyName.Text =
(string) dsUntyped.Tables["Customsrs"],Rows[0]["CompanyName"];
//Co строгим контролем типов Chapter9 dsTyped = new Chapter9(); //Заполняем DataSet.
txtCempanyName.Text = dsTyped. Customs'sL0 J. ConpanyKaie;
Производительность кода со строгим контролем типов выше. Насколько? На момент написания этой книги была доступна только бета-версия Visual Studio .NET, а оценивать производительность бета-версий программных продуктов всегда очень сложно. Тем не менее ряд проведенных мной тестов показал, что в показанном выше фрагменте производительность кода со строгим контролем типов почти в два раза выше производительности кодз. пег.о.глт^ст.его обычный объект DataSet,
ГЛАВА 9 Работа с обьектами DataSet со строгим контролем типов
339
Как же объект DataSet со строгим контролем типов обеспечивает повышенную производительность? В главе 6 мы говорили, что объекты DataRow позволяют обращаться к содержимому поля путем указания имени этого поля, порядкового номера или собственно объекта DataColumn. Код, использующий реальный объект DataColumn, обеспечивает самую "ыжтуг* производительность, о/иciк.. его сложнее всего писать и поддерживать. При передаче имени поля в виде строки написание и поддержка кода упрощаются, но очень сильно падает
Код, генерируемый утилитой XML Schema Definition Tool, берет лучшее от обоих этих вариантов. Код, который пишете вы, удобно поддерживать, а код, генерируемый утилитой, использует объект DataColumn. На рис. 9-5 показан код, который утилита XML Schema Definition Tool генерирует, чтобы возвращать значения поля Сот-panyS'ame записей таблицы Cmmaters. Благодаря чудесам копирования и вставки на рисунке показан код, генерируемый как в Visual Basic .NET, так и в Visual Studio .NET.
'ill kiu><i/<p|ilio.iliont ШйіатНШія\ U«*i Hfl [die? Ijn] . riuptertbli
?St ?*W &oBCt frld ?Sb.-g Ivto Wuvfcn" lidP
* . ¦ :. л SP * ЩЬ Й - • /а - К, - z^a-;
.
%
* СіїяІ omersRow( WindowiAppllret Kipl ihaplep9) •j |iffCoiTHWfiyN.MT*

^:угл .I ус*'Лйfie,fat / 1 .С-¦ ^ ¦':¦-¦ . - ¦ ^ :,r ¦.*. .
і
am
2ч ;Иг. К ШіІЙ&аВДМЯІЙІ . "--іир.тпуНяігігСп Linen) * v« luv
о

ІЯ
t ¦
О _Ц ЕвШїрвШйіі

-. ІЯ [ і -. tnbl*'"1! W ГЛ . L —1
WS :ї;, (ii.tr irigi (t L-e^iiWaM-reler-n] і;
{j BtC f
С toC I a . . l-.iHli'li'iM' j;. r.i,
j............41.......1
1 її I

у. А ' [KS
Рис. \> =>. Код из класса DataSet со строгим контролем типов, обращающийся к полю CompanyJSame записей таблицы Customers
Сравнимой производительности можно шчь. обращаясь к содержимому поля с использованием объекта DataColumn:
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100