DataRow.Item[] Свойство

Определение

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

Перегрузки

Имя Описание
Item[DataColumn]

Возвращает или задает данные, хранящиеся в указанном.DataColumn

Item[Int32]

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

Item[String]

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

Item[DataColumn, DataRowVersion]

Возвращает указанную версию данных, хранящихся в указанном.DataColumn

Item[Int32, DataRowVersion]

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

Item[String, DataRowVersion]

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

Item[DataColumn]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

Возвращает или задает данные, хранящиеся в указанном.DataColumn

public:
 property System::Object ^ default[System::Data::DataColumn ^] { System::Object ^ get(System::Data::DataColumn ^ column); void set(System::Data::DataColumn ^ column, System::Object ^ value); };
public object this[System.Data.DataColumn column] { get; set; }
member this.Item(System.Data.DataColumn) : obj with get, set
Default Public Property Item(column As DataColumn) As Object

Параметры

column
DataColumn

Объект, DataColumn содержащий данные.

Значение свойства

Объект Object , содержащий данные.

Исключения

Столбец не принадлежит этой таблице.

Значение column null.

Предпринята попытка задать значение в удаленной строке.

Типы данных значения и столбца не совпадают.

Примеры

В следующих примерах показано использование Item[] свойства для получения и задания значения определенного индекса столбца. Первый пример получает значение первого столбца в любой строке, которую пользователь щелкает в элементе DataGrid управления. Второй задает значение, переданное в качестве аргумента методу.

Private Sub DataGrid1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
    
    Dim dataGridTable As DataTable = _
        CType(DataGrid1.DataSource, DataTable)
    ' Set the current row using the RowNumber 
    ' property of the CurrentCell.
    Dim currentRow As DataRow = _
        dataGridTable.Rows(DataGrid1.CurrentCell.RowNumber)
    Dim column As DataColumn = dataGridTable.Columns(1)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(column).ToString()
End Sub
 
Private Sub SetDataRowValue( _
    ByVal grid As DataGrid, ByVal newVal As Object)

    ' Set the value of a column in the last row of a DataGrid.
    Dim table As DataTable = CType(grid.DataSource, DataTable)
    Dim row As DataRow = table.Rows(table.Rows.Count - 1)
    Dim column As DataColumn = table.Columns("FirstName")
    row(column)= newVal
End Sub

Комментарии

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это немедленное изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

Применяется к

Item[Int32]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

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

public:
 property System::Object ^ default[int] { System::Object ^ get(int columnIndex); void set(int columnIndex, System::Object ^ value); };
public object this[int columnIndex] { get; set; }
member this.Item(int) : obj with get, set
Default Public Property Item(columnIndex As Integer) As Object

Параметры

columnIndex
Int32

Отсчитываемый от нуля индекс столбца.

Значение свойства

Объект Object , содержащий данные.

Исключения

Происходит при попытке задать значение в удаленной строке.

Аргумент columnIndex выходит за пределы диапазона.

Происходит при установке значения и несоответствия Typeнового значенияDataType.

Примеры

В следующих примерах показано использование Item[] свойства для получения и задания значения определенного индекса столбца. Первый пример получает значение первого столбца в любой строке, которую пользователь щелкает в элементе DataGrid управления.

private void DataGrid1_Click(object sender,
    System.EventArgs e)
{
    // Get the DataTable the grid is bound to.
    DataGrid thisGrid = (DataGrid) sender;
    DataTable table = (DataTable) thisGrid.DataSource;
    DataRow currentRow =
        table.Rows[thisGrid.CurrentCell.RowNumber];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow[1]);
    // You can also use the name of the column:
    // Console.WriteLine(currentRow["FirstName"])
}

private void SetDataRowValue(DataGrid grid, object newValue)
{
    // Set the value of the last column in the last row of a DataGrid.
    DataTable table;
    table = (DataTable) grid.DataSource;
    DataRow row;

    // Get last row
    row = (DataRow)table.Rows[table.Rows.Count-1];

    // Set value of last column
    row[table.Columns.Count-1] = newValue;
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)

    ' Get the DataTable the grid is bound to.
    Dim thisGrid As DataGrid = CType(sender, DataGrid)
    Dim table As DataTable = CType(thisGrid.DataSource, DataTable)
    Dim currentRow As DataRow = _
        table.Rows(thisGrid.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow(1))
    ' You can also use the name of the column:
    ' Console.WriteLine(currentRow("FirstName"))
    End Sub

    Private Sub SetDataRowValue( _
        ByVal grid As DataGrid, ByVal newValue As Object)

    ' Set the value of the last column in the last row of a DataGrid.
    Dim table As DataTable
    table = CType(grid.DataSource, DataTable)
    Dim row As DataRow 
    row = table.Rows(table.Rows.Count-1)
    row(table.Columns.Count-1) = newValue
End Sub

Комментарии

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

Применяется к

Item[String]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

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

public:
 property System::Object ^ default[System::String ^] { System::Object ^ get(System::String ^ columnName); void set(System::String ^ columnName, System::Object ^ value); };
public object this[string columnName] { get; set; }
member this.Item(string) : obj with get, set
Default Public Property Item(columnName As String) As Object

Параметры

columnName
String

Имя столбца.

Значение свойства

Объект Object , содержащий данные.

Исключения

Столбец, указанный не columnName удается найти.

Происходит при попытке задать значение в удаленной строке.

Происходит при установке значения и его Type несоответствия DataType.

Происходит при попытке вставить значение NULL в столбец, для которого AllowDBNull задано значение false.

Примеры

В следующих примерах показано использование Item[] свойства для получения и задания значения определенного индекса столбца. Первый пример получает значение первого столбца в любой строке, которую пользователь щелкает в элементе DataGrid управления. Второй задает значение, переданное в качестве аргумента методу.

private void DataGrid1_Click(
    object sender, System.EventArgs e)
{
    // Get the DataTable the grid is bound to.
    DataGrid thisGrid = (DataGrid) sender;
    DataTable table = (DataTable) thisGrid.DataSource;
    DataRow currentRow =
        table.Rows[thisGrid.CurrentCell.RowNumber];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow["FirstName"]);
    // You can also use the index:
    // Console.WriteLine(currentRow[1]);
}

private void SetDataRowValue(
    DataGrid grid, object newValue)
{
    // Set the value of the first column in
    // the last row of a DataGrid.
    DataTable table = (DataTable) grid.DataSource;
    DataRow row = table.Rows[table.Rows.Count-1];
    row["FirstName"] = newValue;
}
Private Sub DataGrid1_Click( _
    sender As Object, e As System.EventArgs)
     
    ' Get the DataTable the grid is bound to.
    Dim thisGrid As DataGrid = CType(sender, DataGrid)
    Dim table As DataTable = _
        CType(thisGrid.DataSource, DataTable)
    Dim currentRow As DataRow = _
        table.Rows(thisGrid.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow("FirstName"))
    ' You can also use the index:
    ' Console.WriteLine(currentRow(1).ToString())
End Sub
    
Private Sub SetDataRowValue( _
    grid As DataGrid, newValue As Object)
    ' Set the value of the first column in 
    ' the last row of a DataGrid.
    Dim table As DataTable = _
        CType(grid.DataSource, DataTable)
    Dim row As DataRow
    row = table.Rows((table.Rows.Count - 1))
    row("FirstName") = newValue
End Sub

Комментарии

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это немедленное изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

Применяется к

Item[DataColumn, DataRowVersion]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

Возвращает указанную версию данных, хранящихся в указанном.DataColumn

public:
 property System::Object ^ default[System::Data::DataColumn ^, System::Data::DataRowVersion] { System::Object ^ get(System::Data::DataColumn ^ column, System::Data::DataRowVersion version); };
public object this[System.Data.DataColumn column, System.Data.DataRowVersion version] { get; }
member this.Item(System.Data.DataColumn * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(column As DataColumn, version As DataRowVersion) As Object

Параметры

column
DataColumn

Объект, DataColumn содержащий сведения о столбце.

version
DataRowVersion

Одно из DataRowVersion значений, указывающее нужную версию строки. Возможные значения: Default, Original, Current и Proposed.

Значение свойства

Объект Object , содержащий данные.

Исключения

Столбец не принадлежит таблице.

Аргумент column содержит значение NULL.

Строка не имеет этой версии данных.

Примеры

В следующем примере возвращается текущее значение ячейки, щелкнув ее в элементе DataGrid управления.

private void DataGrid1_Click(object sender,
    System.EventArgs e)
{
    DataTable dataGridTable =
        (DataTable)DataGrid1.DataSource;

    // Set the current row using the RowNumber
    // property of the CurrentCell.
    DataRow currentRow = dataGridTable.Rows[DataGrid1.CurrentCell.RowNumber];
    DataColumn column = dataGridTable.Columns[1];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow[column, DataRowVersion.Current]);
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)

    Dim dataGridTable As DataTable = _
        CType(DataGrid1.DataSource, DataTable)

    ' Set the current row using the RowNumber 
    ' property of the CurrentCell.
    Dim currentRow As DataRow = dataGridTable.Rows( _
        DataGrid1.CurrentRowIndex)
    Dim column As DataColumn = dataGridTable.Columns(1)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(column, _
        DataRowVersion.Current).ToString()
End Sub

Комментарии

Не version следует путать со свойством RowState . Аргумент version описывает состояние данных, содержащихся в столбце относительно исходного значения столбца.

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это немедленное изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

См. также раздел

Применяется к

Item[Int32, DataRowVersion]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

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

public:
 property System::Object ^ default[int, System::Data::DataRowVersion] { System::Object ^ get(int columnIndex, System::Data::DataRowVersion version); };
public object this[int columnIndex, System.Data.DataRowVersion version] { get; }
member this.Item(int * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(columnIndex As Integer, version As DataRowVersion) As Object

Параметры

columnIndex
Int32

Отсчитываемый от нуля индекс столбца.

version
DataRowVersion

Одно из DataRowVersion значений, указывающее нужную версию строки. Возможные значения: Default, Original, Current и Proposed.

Значение свойства

Объект Object , содержащий данные.

Исключения

Аргумент columnIndex выходит за пределы диапазона.

Типы данных значения и столбца не совпадают.

Строка не имеет этой версии данных.

Предпринята попытка задать значение в удаленной строке.

Примеры

В следующем примере возвращается текущее значение столбца через Item[] свойство DataRow объекта.

Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    ' Set the current row using the RowNumber property of the CurrentCell.
    Dim currentRow As DataRow = CType(DataGrid1.DataSource, DataTable). _
       Rows(DataGrid1.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(1, DataRowVersion.Current).ToString()
End Sub

Комментарии

Можно создать или обновить строку только после вызова BeginEdit метода. EndEdit Аналогичным образом метод должен вызываться для фиксации изменения. После вызова метода и перед вызовом EndEditAcceptChanges метода сохраняются внутренние представления исходных и новых предлагаемых значений. Таким образом, пока не AcceptChangesвызовете version аргумент, можно использовать аргумент, чтобы указать нужную версию значения столбца или DataRowVersion.OriginalDataRowVersion.Proposed. Однако после вызова AcceptChanges метода версия столбца возвращается.DataRowVersion.Original Если строка новая, можно также передать DataRowVersion.Default параметру, чтобы получить значение по умолчанию столбца. При передаче DataRowVersion.Currentсвойство возвращает текущее значение, независимо от его версии.

Note

Метод BeginEdit вызывается неявно при изменении значения элемента управления с привязкой к данным или при DataRow добавлении DataRowCollectionобъекта в метод; EndEdit метод вызывается неявно при вызове следующих методов: AcceptChanges метод DataRow объекта, AcceptChanges метода DataTable объекта или CancelEdit метода.

Напротив, DataRowVersion перечисление Current возвращает версию данных после EndEdit вызова метода.

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

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это немедленное изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

Применяется к

Item[String, DataRowVersion]

Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs
Исходный код:
DataRow.cs

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

public:
 property System::Object ^ default[System::String ^, System::Data::DataRowVersion] { System::Object ^ get(System::String ^ columnName, System::Data::DataRowVersion version); };
public object this[string columnName, System.Data.DataRowVersion version] { get; }
member this.Item(string * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(columnName As String, version As DataRowVersion) As Object

Параметры

columnName
String

Имя столбца.

version
DataRowVersion

Одно из DataRowVersion значений, указывающее нужную версию строки. Возможные значения: Default, Original, Current и Proposed.

Значение свойства

Объект Object , содержащий данные.

Исключения

Столбец, указанный не columnName удается найти.

Типы данных значения и столбца не совпадают.

Строка не имеет этой версии данных.

Строка была удалена.

Примеры

В следующем примере возвращается текущая версия данных по щелчку ячейки DataGrid элемента управления.

private void DataGrid1_Click(object sender, System.EventArgs e)
{
    // Set the current row using the RowNumber
    // property of the CurrentCell.
    DataRow currentRow =
        ((DataTable)(DataGrid1.DataSource)).
        Rows[DataGrid1.CurrentCell.RowNumber];

    // Print the current value of the column named "FirstName."
    Console.WriteLine(currentRow["FirstName",
        DataRowVersion.Current]);
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    ' Set the current row using the RowNumber property 
    ' of the CurrentCell.
    Dim currentRow As DataRow = _
        CType(DataGrid1.DataSource, DataTable). _
        Rows(DataGrid1.CurrentCell.RowNumber)

    ' Print the current value of the column named "FirstName."
    Console.WriteLine(currentRow("FirstName", _
        DataRowVersion.Current).ToString())
End Sub

Комментарии

Версию не следует путать со свойством RowState . Аргумент version описывает состояние данных, содержащихся в столбце относительно исходного значения столбца. Свойство RowState описывает состояние всей строки относительно родительского DataTableэлемента.

При установке свойства создается исключение, если в событии возникает ColumnChanging исключение.

Если это немедленное изменение, ознакомьтесь EndEdit с исключениями, которые можно создать.

См. также раздел

Применяется к