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

 

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

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

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

Visual Basic .NET
Dim dsllrtyped As New DataSet()
"Инициализируем и заполняем объект OataSet
Dim tblCustomers As DataTable = dsUntyped.Tables(O)
Получае> ссылку на нужное поле Dim colCompanyName As DataColumn
iColCompanyName = tblCustomers. Columns("CompanyName")
Dim - As DataRow = tblCustomers.fiuws(O) txtCompanyName.Text = CType(row(colCoinpanyName), String)
340 Часть III Автономная работа с данными: объелi DataSet модели ADO NET
Visual
DataSet dsllntyped = new DataSet(); //Инициализируем и заполняем объект DataSet DataTable tblCustomers = dsUntyped.Tables[01; //Получаем ссылку на нужное поле DataColumn colCompanyName;
colCompsnyName = tblCustomers.CoIimwsI 'CoinpaiiyNanie"].
BataBow row = tblCustomers.Ro«sf.O];
txtCompanyName.Text = (string) rowlcolCompanyNemeJ;
Здесь следует отметить вот что. В коде класса DataSet со строгим типов нет ничего, что нельзя написать омостояте.чьно. Фактически все, что «умеет» класс DataSet со строгим контролем тлпоъ. вы можете делать сами. Тем не менее на написание кода требуется время. Чкнбы : к содержимому обычного
объекта DataSet так же эффективно, как к содержимому объекта DataSet со строгим контролем типов, избегайте в наборах построчного поиска. Вместо этого используйте поиск по индексу или поддерживайте в объекте DataSet без контроля типов ссылки :п соответствующие поля.
В тесте, показанном кышс. производительность кода, использующего объект DataSet со строгим контролем липок, почти в два раза выше производительности кода на основе обычного объекта DataSet. Я слегка изменил код, и теперь он обращается к содержимому записи, испсЬьзуя соответствующий объект DataColumn: кроме того, я добавил нужный код преобразования типов. Что же получилось в итоге? Производительность нового, усовершенствованного кода, обращавшегося к содержимому обычного объекта DataSet, оказалась на 1выше производительности кода, обращавшегося к объекту DataSet со строгим контролем типов.
Использование объектов DataSet со строгим контролем типов создает дополнительную нагрузку, и поэтому создание, заполнение и доступ к ним требуют
больше времени. В проведенных мной тестах объекты DataSet без контроля типов обеспечивали чуть более высокую производительность (на 8-10% выше), чем
объекты DataSet со строгим контролем.
Что еще следует учесть
Объекты DataSet со строгим контролем типов упрощают написание кода и позволяют сохранить душевное спокойствие. В следующих разделах рассказывается, что еще следует учесть, если вы собираетесь использовать объекты DataSet со строгим контролем типов.
Осуществление структурных изменений
Если вы изменяете структуру объекта DataSet со строгим контролем типов, добавляя или удаляя некоторые объекты ОШШшт, вам потребуется сгенерировать объект DataSet заново. Помните об этом при создании многоуровневого приложения, промежуточный уровень которого возвращает объекты DataSet со строгим контролем типов. После того как вы повторно сгенерируете объект DataSet со строгим контролем типов, возвращаемый промежуточным уровнем, вам потребуется заново собрать приложение, предварительно обновив ссылку на объект проме-
ГЛАВА 9 Работа с объектами DataSet со строгим контролем типов 341
¦л'уг.'-.чу-л-:::: уровня. Тем не менее, если вы собираетесь менять структуру данных, возвращаемых сервером, лучше всего изменить обращающийся к этим данным клиентский код, независимо от того, используется ли обычный объект DataSet или объект DataSet со строгим контролем типов.
Преобразование объектов DataSet
Объекты DataSet со строгим контролем типов наследуют от стандартного класса DataSet, и поэтому следующий фрагмент кода, обращающийся к объекту DataSet со строгим контролем типов через интерфейс DataSet без контроля типок. не является ошибочным:
Visual Basic
Dim dsStrong As Mew ChapterSO
¦Dim dsUntyped As DataSet
dsUntyped = CType(c!sStrong, DataSet)
Visual C# .NET
Chapter 9 dsStrong = new CutpterSO;
DataSet dsUntyped;
dsUntyped = (DataSet) dsStrong;
Однако имейте в виду, что объект DataSet без контроля типов до класса
DataSet со строгим контролем типов можно, только если обычный объект DataSet изначально создавался как экземпляр этого самого класса со строгим контролем типов. Следующий фрагмент поможет вам уяснить все непонятные моменты данной модели поведения:
Visual Basic
Dim dsStrongl, dsStrong2 As Chapters Dim dsUntyped As DataSet
'Этот код выполнится успешно dsStrongl = New Chapter9()
dsUntyped = CType(dsStrong1, DataSet) ¦c!sStrong2 = CType (dsUntyped, Chapters)
'Этот код сгенерирует исключение dsUntyped = New DataSetO dsStrong2 = CType(dsUntyped, Chapter9)
Visual C# .NET
Chapters dsStrongl, dsStrengS;
DataSet dsUntyped;
//.Этот код выполнится успешно dsStrongl = new Chapter9();
dsUntyped = (DataSet) dsStrongl;
342
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
asSt rong2 = (Cnaptei9) dsUntyped;
//Зтст код сгенерирует исключение dsUntyped = newDataSet(); dsStrong2 = (Chapters) dsUntyped;
А что, если у вас есть объект DataSet без контроля типов, и вы хотите обращаться к его содержимому с класса DataSet со строгим контролем типов? Если объект DataSet без контроля типов создавался как экземпляр обычного класса DataSet, преобразовать его в экземпляр класса DataSet со строгим контролем типов нельзя. Тем не \-из!сс можно методом Merge класса DataSet со строгим контролем типов импортировать содержимое обычного объекта
Предыдущая << 1 .. 145 146 147 148 149 150 < 151 > 152 153 154 155 156 157 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100