Реклама:

(char)l3 + (char)l0;

foreach (DataRelation drln in ndl.Kaf.ChildRelations){ textBoxl.Text = textBoxl.Text + (char)9 +

drln.ChildTable + (char)l3 + (char)l0;

}

_I

Если таблица является дочерней хотя бы в одном из отношений набора данных, в коллекции Constraints этой таблицы мы наверняка встретим как минимум два ограничения - UniqueConstraint для столбцов первичного ключа и ForeignKeyConstraint - для внешнего ключа, обеспечивающего связь с родительской таблицей.

Пример. Просмотрим элементы коллекции Constraints таблицы Prep и выдадим в textBoxl сведения о столбцах первичного ключа (если встретим UniqueConstraint) и о некоторых параметрах отношения (если встретим ForeignKeyConstraint). Результат показан на рис. 3.86.

ForeignKeyConstraint fk; UniqueConstraint uk;

textBoxl.Text = "";

//---перебираем все элементы Prep.Constraints

foreach (Constraint c in nd1.Prep.Constraints){ if (c is System.Data.UniqueConstraint) {

//---ограничение уникальных столбцов

uk = (System.Data.UniqueConstraint)c; textBoxl.Text = textBoxl.Text +

"В первичный ключ входят столбцы:" + (char)13 + (char)10;

//---выдадим имена всех уникальных столбцов

foreach(DataColumn dc in uk.Columns){

textBox1.Text = textBox1.Text + (char)9 +

dc.ColumnName + (char)13 + (char)10;

}

}

else if (c is System.Data.ForeignKeyConstraint){

//---ограничение внешнего ключа

fk = (System.Data.ForeignKeyConstraint)c; textBox1.Text = textBox1.Text +

"Ограничение внешнего ключа по столбцам:" +

(char)13 + (char)10;

//---выдадим столбцы внешнего ключа

foreach (DataColumn dcf in fk.Columns){

textBox1.Text = textBox1.Text + (char)9 +

dcf.ColumnName + (char)13 + (char)10;

}

//---имя родительской таблицы

textBox1.Text = textBox1.Text + (char)9 +

"Родительская таблица : " + fk.RelatedTable +

(char)13 + (char)10;

//---правило каскадного изменения

textBox1.Text = textBox1.Text + (char)9 +

"Правило каскадного изменения : " +

fk.UpdateRule.ToString() + (char)13 + (char)10;

}

}

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.86

Свойство ParentRelations таблицы набора данных

public DataRelationCollection ParentRelations {get;}

возвращает ссылку на коллекцию отношений, в которых данная таблица является дочерней.

Пример. Вывести в объекте textBox1 сведения о всех родительских таблицах для таблицы Prep, а также о столбцах, реализующих связь между таблицами.

textBoxl.Text = ""; textBoxl.Text = textBoxl.Text +

"Таблица Prep - дочерняя для таблиц: " + (char)l3 + (char)l0; foreach (DataRelation dpr in ndl.Prep.ParentRelations){ textBoxl.Text = textBoxl.Text + (char)9 +

dpr.ParentTable + " по столбцам: "; foreach (DataColumn ccc in dpr.ParentColumns){

textBoxl.Text = textBoxl.Text + ccc.ColumnName + " ";

}

textBoxl.Text = textBoxl.Text + (char)l3 + (char)l0;

}

Результат показан на рис. 3.87.

рис. 3.87

3.4.15. Поиск записей в таблице данных

3.4.15.1. Поиск записей по значению первичного ключа

Для поиска записи по значению столбцов первичного ключа используется метод Find коллекции Rows таблицы данных:

public DataRow Find( object key); public DataRow Find( object[] keys );


⇐ Предыдущая страница| |Следующая страница ⇒