Comparteix a través de


DataRow.Item[] Propiedad

Definición

Obtiene o establece datos almacenados en una columna especificada.

Sobrecargas

Item[DataColumn]

Obtiene o establece los datos almacenados en el DataColumn especificado.

Item[Int32]

Obtiene o establece los datos almacenados en la columna especificada mediante un índice.

Item[String]

Obtiene o establece los datos almacenados en la columna especificada mediante un nombre.

Item[DataColumn, DataRowVersion]

Obtiene la versión específica de datos almacenados en el DataColumn determinado.

Item[Int32, DataRowVersion]

Obtiene los datos almacenados en la columna, especificada mediante índice y versión de los datos que se van a recuperar.

Item[String, DataRowVersion]

Obtiene la versión específica de datos almacenados en la columna con nombre.

Item[DataColumn]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene o establece los datos almacenados en el DataColumn especificado.

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

Parámetros

column
DataColumn

Un valor de tipo DataColumn que contiene los datos.

Valor de propiedad

Object que contiene los datos.

Excepciones

La columna no pertenece a esta tabla.

El valor de column es null.

Se intentó establecer un valor en una fila eliminada.

No coinciden los tipos de datos del valor y de la columna.

Ejemplos

En los ejemplos siguientes se muestra el uso de la Item[] propiedad para obtener y establecer el valor de un índice de columna específico. En el primer ejemplo se obtiene el valor de la primera columna de cualquier fila en la que un usuario hace clic en un DataGrid control. El segundo establece un valor pasado como argumento al método .

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

Comentarios

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición inmediata, consulte EndEdit para ver las excepciones que se pueden generar.

Se aplica a

Item[Int32]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene o establece los datos almacenados en la columna especificada mediante un índice.

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

Parámetros

columnIndex
Int32

Índice de base cero de la columna.

Valor de propiedad

Object que contiene los datos.

Excepciones

Se produce cuando se intenta establecer un valor en una fila eliminada.

El argumento columnIndex está fuera de intervalo.

Se produce cuando se establece el valor y el objeto Type del valor nuevo no coincide con DataType.

Ejemplos

En los ejemplos siguientes se muestra el uso de la Item[] propiedad para obtener y establecer el valor de un índice de columna específico. En el primer ejemplo se obtiene el valor de la primera columna de cualquier fila en la que un usuario hace clic en un DataGrid control.

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

Comentarios

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición, consulte EndEdit para ver las excepciones que se pueden generar.

Se aplica a

Item[String]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene o establece los datos almacenados en la columna especificada mediante un nombre.

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

Parámetros

columnName
String

El nombre de la columna.

Valor de propiedad

Object que contiene los datos.

Excepciones

No se puede encontrar la columna especificada mediante columnName.

Se produce cuando se intenta establecer un valor en una fila eliminada.

Se produce cuando se establece un valor y su objeto Type no coincide con DataType.

Se produce cuando se intenta insertar un valor null en una columna donde AllowDBNull se establece en false.

Ejemplos

En los ejemplos siguientes se muestra el uso de la Item[] propiedad para obtener y establecer el valor de un índice de columna específico. En el primer ejemplo se obtiene el valor de la primera columna de cualquier fila en la que un usuario hace clic en un DataGrid control. El segundo establece un valor pasado como argumento al método .

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

Comentarios

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición inmediata, consulte EndEdit para ver las excepciones que se pueden generar.

Se aplica a

Item[DataColumn, DataRowVersion]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene la versión específica de datos almacenados en el DataColumn determinado.

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

Parámetros

column
DataColumn

Objeto DataColumn que contiene información sobre la columna.

version
DataRowVersion

Uno de los valores de DataRowVersion que especifica la versión de la fila que desea. Los valores posibles son Default, Original, Current y Proposed.

Valor de propiedad

Object que contiene los datos.

Excepciones

La columna no pertenece a la tabla.

El argumento column contiene un valor nulo.

La fila no tiene esta versión de datos.

Ejemplos

En el ejemplo siguiente se obtiene el valor actual de una celda en la que se hace clic en el DataGrid control .

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

Comentarios

No version debe confundirse con la RowState propiedad . El version argumento describe el estado de los datos que contiene la columna en relación con el valor original de la columna.

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición inmediata, consulte EndEdit para ver las excepciones que se pueden generar.

Consulte también

Se aplica a

Item[Int32, DataRowVersion]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene los datos almacenados en la columna, especificada mediante índice y versión de los datos que se van a recuperar.

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

Parámetros

columnIndex
Int32

Índice de base cero de la columna.

version
DataRowVersion

Uno de los valores de DataRowVersion que especifica la versión de la fila que desea. Los valores posibles son Default, Original, Current y Proposed.

Valor de propiedad

Object que contiene los datos.

Excepciones

El argumento columnIndex está fuera de intervalo.

No coinciden los tipos de datos del valor y de la columna.

La fila no tiene esta versión de datos.

Se intentó establecer un valor en una fila eliminada.

Ejemplos

En el ejemplo siguiente se obtiene el valor actual de una columna a través de la Item[] propiedad del DataRow objeto .

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

Comentarios

Solo puede crear o actualizar una fila después de llamar al BeginEdit método ; de forma similar, EndEdit se debe llamar al método para confirmar la edición. Después de llamar al EndEdit método y antes de llamar al AcceptChanges método , se almacenan representaciones internas de los valores originales y nuevos propuestos. Por lo tanto, hasta que llame a AcceptChanges, puede usar el argumento para especificar qué version versión del valor de una columna necesita, ya sea o DataRowVersion.OriginalDataRowVersion.Proposed. Sin embargo, en cuanto se llama al AcceptChanges método , la versión de la columna se revierte a DataRowVersion.Original. Si la fila es nueva, también puede pasar DataRowVersion.Default el parámetro para recuperar el valor predeterminado de la columna. Al pasar DataRowVersion.Current, la propiedad devuelve el valor actual, sea cual sea su versión.

Nota

Se BeginEdit llama al método implícitamente cuando se cambia el valor de un control enlazado a datos o cuando se agrega un DataRow objeto a ; se EndEdit llama implícitamente al DataRowCollectionmétodo cuando se llama a los métodos siguientes: el AcceptChanges método del DataRow objeto, el AcceptChanges método del DataTable objeto o el CancelEdit método .

Por el contrario, la DataRowVersion enumeración Current devuelve la versión de los datos después de llamar al EndEdit método .

El version argumento no debe confundirse con la RowState propiedad . El version argumento describe el estado de los datos que contiene la columna en relación con el valor original de la columna. La RowState propiedad describe el estado de toda la fila con respecto a su elemento primario DataTable.

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición inmediata, consulte EndEdit para ver las excepciones que se pueden generar.

Se aplica a

Item[String, DataRowVersion]

Source:
DataRow.cs
Source:
DataRow.cs
Source:
DataRow.cs

Obtiene la versión específica de datos almacenados en la columna con nombre.

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

Parámetros

columnName
String

El nombre de la columna.

version
DataRowVersion

Uno de los valores de DataRowVersion que especifica la versión de la fila que desea. Los valores posibles son Default, Original, Current y Proposed.

Valor de propiedad

Object que contiene los datos.

Excepciones

No se puede encontrar la columna especificada mediante columnName.

No coinciden los tipos de datos del valor y de la columna.

La fila no tiene esta versión de datos.

Se ha eliminado la fila.

Ejemplos

En el ejemplo siguiente se obtiene la versión actual de los datos en una celda en la que se hace clic en un DataGrid control .

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

Comentarios

La versión no debe confundirse con la RowState propiedad . El version argumento describe el estado de los datos que contiene la columna en relación con el valor original de la columna. La RowState propiedad describe el estado de toda la fila con respecto a su elemento primario DataTable.

Cuando se establece la propiedad , se genera una excepción si se produce una excepción en el ColumnChanging evento .

Si se trata de una edición inmediata, consulte EndEdit para ver las excepciones que se pueden generar.

Consulte también

Se aplica a