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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 83 84 85 86 87 88 < 89 > 90 91 92 93 94 95 .. 260 >> Следующая

}
Здесь показан третий способ просмотра содержимого конкретного поля. Метод Item объекта DataRow принимает объект DataColumn. На момент написания
этой книги выборка содержимого записи посредством передачи объекта Data-Column обеспечивала чуть более высокую производительность (примерно на 6% выше), чем поиск по порядковым номерам.
Просмотр объектов DataRow в объекте DataTable
Перемещаться по объектам DataRow в объекте DataTable так же просто, как перемещаться по любому другому набору в .NET Framework. Используйте цикл For или
182
Часть Автономная работа с данными: объект DataSet модели ADO. NET
For Ват языка по вашему выбору. Следующий фрагмент кода с помощью приводившейся ранее процедуры ¦¦. просматривает содержимое объекта Data-Table созданного при низов? метода Г>,1Ш(1<ф1е.гЛ11.
Visual Basic .NET
Dim strConn, strSQL As String
StrConn = "Provider=SOLOLEDB;Data Source=(local)\NetSDK;" & _ "Initial Catalog=Northwind;Trusted_Connection=Yes;" strSQL = "SELECT OrderlD, CustomerlD. EmployeelD, OrderOate " &_
"FROM Orders" Dim da As New 01eDbDataAdapter(strSQL, strConn) Dim ds As New DataSetO da.Fill(ds, "Orders")
Dim tbl As DataTable = ds.Tables(O)
Dim row As DataRow
Dim intCounter As Integer
For Each row In tbl. Rows
intCounter += 1
Console.WriteLine("Contents of row #" & intCounter) fJisplayFlow(rc?w)
Next row
Visual C# .NET
strConn, strSQL; strConn = "Pr<jvlder=SQLOLEDB;Data Source=( local)\\NetSDK;" +
"Initial Catalog=Northwind:Trusted_Connection=Yes; "; strSQL = "SELECT OrderlD, CustomerlD, EmployeelD, OrderDate " +
"FROM Orders";
OleDbDataAdaptei da = new 01eDbDataAdapter(strSGL, strConn);
DataSet ds = new DataSetO; da.FilKds, "Orders");
DataTable tbl = ds.TablesfO];
int intCounter;
foreach (DataRow row in tbl. Rows) (
intCounter++;
Console.writeLine("Contents of row ft" + intCounter); DisplayRow(row);
}
Проверка данных в объекте DataSet
БД предо::т;!Ег.яь-гг различные механизмы проверки своих данных. В БД Northwind определено множество правил и ограничений. Значения поля CustomerlD таблицы Стыопк i1- не должны превышать 5 символов и должны быть уникальными в пределах таблицы. Таблица Orders генерирует для каждой записи новое значение
ГЛАВА 6 Работа с объектами DataSet 183
¦ iuUtid и -ipi'ovci, чтобы значение с .usu mn 11 !• каждой записи eoo'ii4-r<t»i»::i.;io одной из записей таблицы Customers.
Иногда с помощью этих же правил необходимо проверить данные в приложении перед отправкой их в БД. Например, в Интернет-магазине вы открыли страницу для оформления покупки положенных в корзину товаров. Большинство ма-г.пшг'Ж до отправки сведений о заказе в соответствующую БД убедятся, что вы
заполнили все обязательные поля.
Подобная логика кажется избыточной, поскольку в БД скорее всего уже
определены похожие правила проверки. Тем не менее, добавляя правила проверки в приложение, вы повышаете его производительность. Если пользователь случайно или намеренно не ввел номер кредитной карты, Web-страница с легкос-не обращаясь к БД, определит, что успешная отправка сведений о заказе невозможна. Еще одно преимущество такого подхода — небольшое снижение сетевого трафика и нагрузки на БД.
об'Ъй';";: DataSet модели Л! >u \ it предоставляет множество механизмов проверки д:шпы\. аналогичных механизмам БД. Эти механизмы, также называемые ограничениями (constraints), можно разделить на две категории — ограничения уровня столбца и ограничения уровня таблицы,
Свойства объекта DataColumn, используемые для проверки данных
Объект DataColumn предоставляет ряд свойств для проверки данных.
Свойство Readonly
Простейший способ гарантировать правильность данных — запретить пользователям изменять их. Чтобы сделать данные объекта DataColumn доступными только для чтения, задайте его свойству Readonly значение True,
Свойство AHowDBNull
Одни поля БД требуют обязательно указать их :<!ычем! :с. а друтие принимают пустые значения — NULL. Объект DataColumn предоставляет свойство AllowDBNulI, определяющее, принимает ли столбец объекта значения NULL.
Свойство MaxLength
Многие БД ограничивают длину значения поля. Так, поле CustomerlD таблицы Customers принимает строку длиной до 5 uimиолов, а поле О 4iip;mvN,imt — строку длиной до 40 символов. Определить такое же ограничение на объекте DataColumn позволяет свойство MaxLength.
Свойство Unique
Свойство Unique объекта DataColumn позволяет указать уникальность значений столбца. При значении True этого свойства \l)ON!? i просматривает значения соответствующих полей каждой записи объекта Data/able. Если вы, добавляя или изменяя запись объекта создадите в столбце с ограничением на уни-
кальность идентичное значение, ADO. МП' сгенерирует исключение Constraint-Exception.
184
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
Набор Constraints объекта DataTable
Для проверки данных в объекте DataSet предназначены также свойства объекта DataTable. В объектной модели ADO.NET педусмотрено два класса, позволяющих определять ограничения в объекте DataTable, - UniqueConstraint^ ForeignKey-Constraint; они происходят от класса Constraint. Объект DataTable предоставляет свойство <.< .Hsirainis. при помощи которого удается добавлять, изменять и просматривать ограничения в объекте DataTable.
Предыдущая << 1 .. 83 84 85 86 87 88 < 89 > 90 91 92 93 94 95 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100