Реклама:

textBoxl.Text = nd1.Tables["Kaf"].Columns[1].DataType.ToString(); textBoxl.Text =

nd1.Tables["Kaf"].Columns["Nazv"].DataType.ToString();

Несомненно, для доступа к столбцу предпочтительнее использовать его имя, если, конечно, оно известно: порядок следования столбцов в коллекции Columns может поменяться и тогда бывшее ранее верным обращение, например Columns[1], будет относиться уже к другому столбцу. Это повлечет необходимость вносить изменения во все строки, использующие синтаксис типа Columns[index], что, мягко говоря, не совсем удобно.

В типизированных наборах данных имена столбцов становятся свойствами таблиц (имена которых, в свою очередь, становятся свойствами набора данных). Имя свойства, позволяющего обратиться к столбцу, складывается из имени столбца и слова Column, поэтому к столбцу Nazv таблицы Kaf правомочно обращение вида textBox1.Text = nd1.Kaf.NazvColumn.DataType.ToString();

Примечание. Если таблица не принадлежит к какому-либо набору данных, для программного обращения к ее строкам и столбцам применяется синтаксис для обращения к таблицам нетипизированных наборов данных.

3.4.3. Таблица как коллекция строк

Данные в таблице хранятся в строках. Ссылка на коллекцию строк возвращается свойством Rows таблицы данных:

public DataRowCollection Rows {get;}

Каждая отдельная строка таблицы - элемент коллекции Rows - имеет тип System.Data.DataRow.

Синтаксис обращения к строке таблицы зависит от того, принадлежит ли эта таблица к типизированному или к нетипизированному набору данных.

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

public DataRow this[ int index] {get;}

Например, обратиться ко второй по порядку строке таблицы Kaf и считать состояние этой строки в элемент управления textBox1:

textBox1.Text = nd1.Tables["Kaf"].Rows[1].RowState.ToString();

Свойствами типизированного набора, как известно, становятся имена содержащихся в нем таблиц. Такое свойство - имя таблицы - и можно использовать в качестве индексатора для доступа к строке.

Например, обратиться ко второй по порядку строке таблицы Kaf типизированного набора данных и считать состояние этой строки в элемент управления textBox1: textBox1.Text = nd1.Kaf[1].RowState.ToString();

3.4.4. Обращение к значению, хранящемуся в столбце

Каждая строка таблицы содержит множество значений, по одному на каждый столбец таблицы. Чтобы обратиться к значению конкретного столбца в записи, нужно воспользоваться одним из индексаторов строки - объекта DataRow.

Рассмотрим индексаторы строки, применяемые для обращения к одному из ее столбцов.

Индексатор 1. В качестве индекса используется строковое имя столбца:

public object this[string] {get; set;}

Пример. Обращение к значению строкового типа, хранящемуся в строковом столбце Nazv таблицы Kaf набора данных nd1 по имени столбца: textBoxl.Text = nd1.Kaf.Rows[1]["Nazv"].ToString();

Отметим, что обращение к значению столбца строкового типа требует применения метода ToString(), в то время как обращение к столбцам, хранящим данные иных типов, требует явного приведения полученного значения к нужному типу: short nSostav = (short)nd1.Kaf.Rows[1]["Sostav"];


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