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

 

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

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

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

Visual Basic .NET
Dim dsStrong As New Chapter9() Dim dsUntyped As New DataSet() dsStrong.Herge(dsUntyped)
Visual C# NET
Chapter9 dsStrong = new Chapter9(); DataSet dsUntyped = new DataSet О; dsSt rorg.Me rge(dsUntyped);
Метод Merge также in >.4<::h.-ii при обмене данными между экземплярами различных классов IhiiiiSei со строгим контролем типов. Для такого обмена данными разрешается также применять методы Yi'riii>Xi>, и если включить в их
вызовы XML-схему
Возможность генерирования данных без контроля типов
Прсдмо.ь ivciiM, что ваше приложение использует объекты DataSet со строгим контролем и требуется отсылать их серверу промежуточного уровня для передачи изменений в БД. Метод GetChanges объекта DataSet со строгим контролем типов позволяет создать новый объект DataSet, содержащий только измененные записи. Однако этот метод возвращает объект DataSet без контроля типов. Удастся ли преобразовать обычный объект DataSet, возвращаемый методом GetCbanges. в объект DataSet со строгим контролем типов? Безусловно да, что и подтверждают следующие фрагменты:
Visual Basic
Dim osStrongAHRcKs As New Chapters;i
:'Заполняе1- объект DataSet со строгим контролем типов
"и изменяем часть его записей
Dim dsUntyped As DataSet
dsUntyped = dsStrongAHRows.GetChangesO
Dim dsStrongHodifiedRows As Chapters
dsStrongModifledRows = CType(dsUntyped, Chapter9)
ГЛАВА 9 Работа с обьєктами DataSet со строгим контролем типов
343
Visual
Chapters dsStrongAllRows = new Chapter9(); //Заполняем объект DataSet со строгим контролен типов //и изменяем часть его записей DataSet dsUntyped; =
Chapter9 dsStrongModifiedRows; dsStroriQNodifiedRows = (Chapters) dsUntyped;
У объекта DataSet со строгим контролем типов есть и другие методы, которые возвращают данные без контроля типов. Так, метод Select возвращает массив объектов DataRow. Преобразовать его целиком в массив объектов DataSet со строгим контролем типов нельзя, однако это можно сделать с отдельными объектами DataRow.
То же верно и для объекта Обратиться к его содержимому напрямую
через классы со строгим контролем типов но, используя показанный ниже
код, удается преобразовать объект DataRow. возвращаемый свойством Row объекта в класс со строгим контролем типов:
Visual Basic .NET
Dim dsStrong As New Chapter9()
'Заполняем объект DataSet со строгим контролем типов
изменяем часть его записей Dim vueCustomers As New DataView(dsStrong.Customers) Dim rowCustomer As Chapters.CustomersRow
rowCustomer = CType( vueCustomersCO). Row, Chapter9.CustomersRow)
Visual C# .NET
Chapters dsStrong = new Chapter9();
//Заполняем объект DataSet со строгим контролем типов
//и изменяем часть его записей
DataView vueCustomers = new DataView(dsStrong.Customers); Chapters CustomersRow rowCustomer;
rowCustomer = (Chapters,CustomersRow) vueCustomers(0).Row;
Выбор способа разработки
Так что же подходит вам больше всего? Объекты DataSet со строгим контролем типов ускоряют разработку приложения и упрощают написание эффективного кода. Тем не менее их производительность невысока. Написав грамотный код на основе объектов DataSet без контроля типов, вы создадите приложение с более высокой производительностью.
Все зависит от назначения вашей программы. Если важнее высокая производительность, используйте только обычные объекты DataSet. Если же несколько часов, сэкономленных при разработке, сопоставимы со степенью падения про-изводптсдьтхдн. обратите внимание на объекты DataSet со строгим контролем типов,
344
Часть III Автономная работа с данными: объект DataSet модели ADO.NE"r
Вопросы, которые стоит задавать почаще
Вопрос. Я хочу обеспечить максимальную производительность своих компонентов промежуточного уровня и использую на сервере объекты DataSet без контроля типов. Тем не менее при создании клиентской части приложения очень удобны одноименные объекты со строгим контролем типов. Можно ли как-то воспользоваться преимуществами и тех, и других объектов?
Ответ. Да. Пусть ваши компоненты промежуточного уровня возвращают и принимают объекты DataSet без контроля типов. В клиентском приложении используйте экземпляры объектов DataSet со строгим контролем типов и с помощью метода Merge импортируйте содержимое объектов DataSet без контроля типов, возвращаемых промежуточным уровнем.
Вопрос. У объектов DataSet очень мало функций проверки. Я не могу задать свойства объекта DataSet как со строгим контролем типов, так и без контроля тшиш, чтобы гарантировать, что значение попадает в определенный интервал. Можно ли добавить в файл класса дополнительный код для расширенной проверки значений?
Ответ. Конечно. При необходимости свойства классов со строгим контролем типов можно дополнить кодом проверки, однако эти классы DataSet в общем-то не рассчитаны на такое дополнение. Код проверки не сохранится в .xsd-файле класса DataSet со строгим контролем типов. Если вы измените содержимое .xsd-файла, Visual Studio N Г' i заново сгенерирует класс DataSet со строгим контролем типов и вы потеряете написанный вами код,
Есть еще одно решение: создать новый класс, наследующий от класса DataSet со строгим контролем типов, и дополнить первый нужным кодом проверки.
Предыдущая << 1 .. 146 147 148 149 150 151 < 152 > 153 154 155 156 157 158 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100