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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 112 113 114 115 116 117 < 118 > 119 120 121 122 123 124 .. 260 >> Следующая

СвойстваШМййЯ&и ф^Ге?Ш<функционируют аналогичным образом но принимают значения из перечисления Rule. Значение этих свойств по умолчанию -Cascade, т. е. изменения родительской записи каскадируются в дочерние записи.
Например, при вызове метода Delete родительского объекта DataRow вы неявно вызываете и метод Delete его дочерних записей. Точно так же, редактируя значение поля ключа родительского объекта DataRow, вы неявно изменяете содержимое соответствующих полей дочерних записей.
Если каскадировать изменения не требуется, задайте свойствам DeleteRule и UpdateRule значение None. Можно также задать им значение SetNidi или " ' . В первом случае при изменении или удалении содержимого родительской записи соответствующим полям дочерних записей задаются значения null, а во втором — их значения по
Свойства Columns и RelatedColumns
Свойство Columns возвращает массив объектов DataColumn, содержащий столбцы дочерней таблицы, которые составляют ограничение. Свойство RelatedColumns возвращает аналогичные столбцы родительской таблицы. Оба свойства доступны только для чтения.
Свойство ConstraintName
Свойство Cix^-rzintM&vu позволяет просматривать и задавать имя объекта Foreign-KeyConstraint.
Свойство ExtendedProperties
Свойство ExtendedProperties объекта ТогещпКеуСогЫгаШвозвращает объект Ргорег-tyCollection. предназначенный для хранения разнообразных объектов.
Объекты DataSet, DataColumn, DataRelation и UniqueConstraintraY^Q предоставляют свойство ExtendedProperties.
Подробнее о данном свойстве, включая пример кода, — в разделе этой глг.вы посвященном свойству ExtendedProperties объекта DataSet.
Свойства и Table
Свойство RelatedTable возвращает родительский, а свойство Table - дочерний
объекта DataTable ограничения. Оба свойства доступны только для чтения.
Вопросы, которые стоит задавать почаще
Вопрос. Стоит ли использовать объект DataSet при работе лишь с несколькими записями данных?
Ответ. В этой ситуации можно просто воспользоваться объектом DataTable, не прибегая к помощи объекта DataSet. DataSet предоставляет поддержку отношений
ГЛАВА 6 Работа с объектами DataSet 253
между таблицами, возможность чтения и записи i..mm в файлы и потоки, а также поддержку XML-функций. Если все это вам не нужно, воспользуйтесь объектом
Вопрос. Я добавил в объект DataTable новую запись, и при передаче этой записи в БД возникла ошибка, связанная с \с>.\, что запись нарушает определенное на таблице ограничение ЩЩдЩХШШШПочещ такой ошибки не возникло при
добавлении записи в
Ответ. \ 1к ¦ X ИТ обеспечивает соблюдение создаваемых вами ограничений, основываясь на данных объекта DataSet. Созданная вами новая запись нарушит определенное на таблице ограничение только если в объекте DataTable уже есть запись с такими же значениями полей первичного ключа. В ADO.NET нет каких-либо наследуемых знаний о содержимом вашей БД,
Вопрос. Как просмотреть содержимое удаленной записи?
Ответ. Передайте в качестве необязательного параметра свойства Item константу DataRoivVersion.Original.
Вопрос. Можно ли отменить изменения, внесенные мной в записи?
Ответ. Да. Метод объектов !кИа&;и\DataTable и DataSet позволяет
отменить все отложенные изменения затронутых записей,
Вопрос. Как узнать, определен ли в объекте DataTable первичный ключ?
Ответ. Воспользуйтесь следующим фрагментом кода:
Visual Basic NET
If tbl.PriroaryKey.Length > 0 Than •У DataTable есть первичный ключ
Else
DataTable нет первичного ключа
End If
Visual C# NET
if (tbl.PrlmaryKey. Length > 0)
//У DataTable есть первичный ключ
else
/Л DataTable нет первичного ключа Вопрос. Что насчет объектов DataSet и метода
Ответ. Объекты DataSet, DataTable иЗ*&ЭД«й» являются производными от класса MarshalByValueComponent, предоставляющего метод Dispose и событие Disposed.
Метод Dispose позволяет освободить занимаемые объектом ресурсы. Если вам
требуется выполнять код одновременно выполнением метода Dispose объекта,
перехватывайте событие Disposed этого объекта,
254 Часть III Автономная работа с данными: объект DataSet модели ? DO NET
Для тех, кто собирается вызывать метод Dispose какого-либо из вышеперечисленных объектов, отмечу, что действие этого метода не рекурсияж). При вызове метода Dispose объекта DataSet не осуществляется неявного вызова метода Dispose объектов DataTable из состава DataSet.
Г Л А
7
Работа
с реляционными данными
1 atviiiru.i БД редко бывают независимыми структурами данных. Из рис. 7-1 видно, что все таблицы БД Northwind, поставляемой с SQL Server 2000, взаимосвязан ны, и таблиц, стоящих особняком, нет.
Далеко не во всех БД процент взаимосвязанных таблиц так высок, но все же в большинстве БД взаимосвязанные таблицы есть. При разработке приложений вы обязательно столкнетесь с ситуацией, когда потребуется вывести или программно обратиться к данным из связанных таблиц вашей БД.
При работе с данными из нескольких объектов DataTable вам, по всей видимости, потребуются четыре функции — перемещение, проверка, агрегация и каскадирование. Не спорю, слова -каскад'!р|нипие- на самом деле нет. Но хотя это и техническая книга, мне все-таки предоставлено ограниченное право на художественный вымысел.
Предыдущая << 1 .. 112 113 114 115 116 117 < 118 > 119 120 121 122 123 124 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100