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

 

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

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

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

Ограничение UniqueConstraint
Задав свойству Unique объекта значение вы определите в
те DataTable, содержащем соответствующий столбец, ограничение на уникальность. Одновременно с этим в набор Constraints объекта DataTable добавляется ограничение UniqueConstraint. Задать значение свойства Unique объекта ШШЛййИпроще,,
чем создать новый объект UniqueConstraint в наборе Constraints объекта DataTable.
Тем не менее иногда требуется создать объект UniqueConstraint явно, например, если необходимо гарантировать уникальность комбинаций значений различных
полей.
Ограничение РптагуКеу
Первичный ключ — особая разновидность ограничения на уникальность. У объекта DataRowCollection ADO.NET есть метод Find, позволяющий искать запись в объекте DataTable по значениям ее полей первичного ключа (подробнее о методе Fhi— в главе 8).
row = MylabJe.Slows.RruK 'А1Г-КГ')
В объекте DataTable предусмотрено множество ограничений на уникальность, однако первичный ключ может быть только один. Задать и просмотреть первичный ключ объекта DataTable позволяет свойство PrimaryKey.
Ограничение ForeignKeyConstraint
В объект DataTable также pnapciib'.co-.i л...0:1иляи. ограничения на внешний ключ. Пример такого ограничения я приводил буквально пару страниц назад. Значение поля CustomerlD каждой записи таблицы Orders БД Northwind должно соответствовать одной из записей таблицы Customers. Чтобы определить подобное ограничение на данных объекта DataSet, создайте объект ForeignKeyConstraint и добавьте его в набор Constraints объекта DataTable, данные которого требуется проверять,
Обычно создавать объект ForeignKeyConstraint явно не требуется. При создании объекта DataRelation, связывающего два объекта DataTable вашего объекта
DataSet, автоматически создается объект ForeignKeyConstraint. В следующей главе
я познакомлю вас с объектом DataRelation и его использованием для работы с реляционными данными.
Примечание ADO.NET ничего не знает о данных БД. Ограничения, определяемые вами на столбцах и таблицах объекта DataSet, действительны только
в пределах этого объекта. Очень важно помнить об этом и вот почему.
Предположим, вы определили на объекте DataTable ограничение Uni-
queConstraint, основанное на столбце CustomerlD. Если вы добавите за-
ГЛАВА 6 Работа с объектами DataSet
185
пись, значение поля CustomerlD которой — ZZZ2Z, ADO.NET сгенерирует исключение только в случае, если в объекте half і ТаЬп есть другая запись с таким же значением этого поля,
Соблюдение ограничений на внешний ключ осуществляется таким же образом. Если определить на объекте DataTable Orders внешний ключ, основанный на столбцах CustomerlD объектов DataTable Orders и Customers, ADO.NET позволит вам добавлять только те заказы, значение поля
CustomerlD которых будет соответствовать одной из записей объекта
DataTable Customers. Если вы попытаетесь добавить заказ, значение поля CustomerlD которого есть в БД, но отсутствует в объекте DataTable С\ы о -
mers, ADO.NET сгенерирует исключение.
Получение информации схемы с помощью метода DataAdapter ЛИВспета
На проверку данных требуется время. Во многих случаях вы не станете тазчач;.*л.-
свойства проверки данных объекта DataSet, чтобы DataAdapter, не имея на то явных указаний, не задавал соответствующие свойства объектов DataColumn и не добавлял ограничения в набор Constraints объекта DataTable, создавая объект DataTable посредством вызова метода Daiaf,aapierIsU
Есть два способа сообщить объекту DataAdapter, что при добавлении столбцов в объект DataTable следует получить о них информацию схемы (сведения об ограничениях): задать свойству объекта DataAdapter значение Ma-WiibKe или вызвать метод D/ita-UinplvrluilSi-tx'w (подробнее об этом — в главе 5).
Пробуйте это дош, и только дома...
Некоторые функции ADO.NET следует использовать в приложениях как можно реже. Одна из них — выборка информации схемы для объекта DataSet с помощью объекта DataAdapter.
информации схемы средствами экономит время
в период разработки. Фактически Visual Studio NET в период разработки генерирует объекты DataSet с помощью DataAdapter (подробнее об этом -¦ далее в этой главе). Если вы создаете небольшое приложение для подтвер- :; ждения концепции, то согласитесь, что при использовании DalcHdapteiдля получения информации схемы требуется писать меньше кода.
Однако если ваша программа не предназначена для выполнения произвольных запросов, вам должны быть известны возвращаемые и поэтому функции типа в готовых вам не потребуются.
Если вы укажете объекту DataAdapter выбрать дополнительную информацию
схемы с помощью метода /у/ЛчтЧ wa. для каждого нового объекта DataColumn объект DataAdapter получит из БД гораздо больше сведений, чем просто имя и тип данных. Просмотрев любой из этих объектов DataColumn, вы убедитесь, что их свойствам Readonly,.iili'tciHiNtilLxuixieujill. и Unique заданы правильные значения
Кроме того, DataAdapter попытается сгенерировать для объекта DataTable первичный ключ. Именно на данном этапе при выборке информации схемы происходит значительное снижение производительности, и почему.
Предыдущая << 1 .. 84 85 86 87 88 89 < 90 > 91 92 93 94 95 96 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100