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

 

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

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

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

Итак, получив порядковый номер клиента из той же страны (Country), что и нужный мам клиент, мы можем просмотреть список всех остальных клиентов из этой страны. Приведенный ниже код использует возвращенное значение метода (¦'///и в качестве отправной точки и перемещается вперед по объекту DataView, пока не нужный ряд, не переместится за пределы объекта DataView или не пе-
рейдет к записи, значение поля Country которой отличается от нужного нам зна-чсмия. Сот нужный ряд не отыщется, код проверит ряды, которые предшествуют |ряду, ставшему отправной точкой. Нельзя сказать, что данный код изящен; тем не менее он максимально эффективен, учитывая, что объект DataView не предназ-на чей для таких ситуаций.
Visual Basic .NET
Dim intStartingPoint As Integer = vueByCountry.Find(row("Country")) 'Dim intCounter As Integer = intlndexStartingPoint
ГЛАВА 8 Сортировка, фильтрация
321
Do
If vueByCountry(lntCounter).Row Is row Then
intlndexCountry = intCounter
blnFound = True
Exit Do End If
intCounter += 1 Loop While intCounter < vueByCountry.Count And _
vueByCountry(intCounter)( "Country") = strCountry
If Not blnFound Then
intCounter = intlndexStartingPoint - 1 Do While intCounter >= 0 And _
vueByCountry<intCounter)("Country"> = strCountry If vueByCountry (intCounter). Row Is row Then intlndexCountry = intCounter
blnFound = True
Exit Do End If
intCounter -= 1
Loop End If
If blnFound Then
Console,WriteLine(vueByCountry(intindexCountry)("CompanyName"))
Else
Console.WriteLlneC"Hot found!") End If
Visual C# -NET
int intStartingPoint = vueByCountry.Find(row["Country"]); while {intCounter < vueByCountry.Count &&
vueByCountry[intCounter]["Country"].Equals(strCountry))
{
if (vueByCountry[intCounter],Row == row) {
intlndexCountry = intCounter;
blnFound = true;
break;
}
intCounter++;
i
i
if blnFound)
{
intCounter = intStartingPoint - 1; while (intCounter >= 0 M
vueByCountry[intCounter]["Country"].Equals(strCountry))
{
if {vueByCountry[intCounter].Row == row)
322
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
;
inilndexCountry = intCciimef:
blnFound = true;
break;
}
intCounter-;
if (blnFound)
Console. WriteLine(vueByCotintry[ intlndexCount ry][ "CompanyName" ]);
else
Console.WriteLine("Not foundl");
ГЛАВА
9
Работа с объектами DataSet со строгим контролем типов
О предыдущих трех главах рассказывалось о создании и использовании объектов DataSet. Как показано ниш-:, код для доступа к содержимому DataSet в программном плане аналогичен коду для доступа к объектам, которые использовались раньше, например к объекту Recordset моделей ADO и DAO:
ADO.NET и Visual Basic .NET
cxtCoupanyMame Text = ds.Tabies<"Customers").Rows(0)("Companyhame' )
ADO.NET и Visual C#
txtCompanvName. Text = ds.Tablesp Customers ' ]. Ri.iws[Oj[ 'CompanyName' ]
ADO, DAO и «классический» Visual Basic
TxtCoi»pai>yNait>e.Text = rs. Fields("CompanyName") Value
Разработчики писали подобный код, начиная с первых дней суп:еттзовагж Visual Basic. Технически он безупречен — работает отлично. Тем не менее это не значит, что усовершенствовать старые методики программирования нельзя.
Чтобы упростить написание кода для доступа к данным, в Microsoft Visual Studio объекты DataSet со строгим контролем типов. Теперь возможен
такой код:
Visual Basic .NET
txtCompanyName.Text = ds.Customers(O). CompanyName
324
Часть Автономная работа с данными: объект DataSet модели ADO.NET
Visual C# .NET
txt Company Name. Text = ds.Cust.omers[0]. Сатрапу Name;
Объект DataSet со строгим контролем типов можно рассматривать как объект DataSet с классом. В частности, объект DataSet со строгим контролем — это класс, наследующий от класса DataSet и включающий свойства и методы, основанные на указанной нами схеме. Кроме того, этот ьллсс содержит другие классы для объектов DataTable и DataRow - они позволяют создавать более эффективный код доступа к данным.
Создание объектов DataSet
со строгим контролем типов
Так как же создать класс DataSet со строгим контролем типов? Можно воспользоваться одним из стандартных способов. Например, написать код и воспользоваться утилитой командной строки из состава ,NET Framework SDK. Или же, что проще, применить метод, связанный со средой разработки Visual Studio .NET - он не требует открытия окна командной строки.
Сложный способ
В состав Framework SDK входит утилита командной строки под названием XML Schema Definition Tool, позволяющая генерировать файлы классов на основе файлов XML-схем (.xsd-файлов). Совместно используя эту утилиту и метод Write-XmlSchema объекта DataSet. вы сможете преобразовать свой объект DataSet в одноименный класс со строгим контролем типов,
Использование метода объекта DataSet
Из раздела главы 6, посвященного созданию объектов DataSet в среде разработки Visual Studio .NET, вам известно, что Visual Studio .NET добавляет в проект файл с расширением .xsd. Этот файл содержит информацию схемы (таблицы, столбцы, ограничения и отношения) для объекта DataSet, и его можно создать программно, при помощи метода 'w'neX^i'kaePi объекта DataSet.
Предыдущая << 1 .. 138 139 140 141 142 143 < 144 > 145 146 147 148 149 150 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100