Compartilhar via


DataRow.Item[] Propriedade

Definição

Obtém ou define os dados armazenados em uma coluna especificada.

Sobrecargas

Item[DataColumn]

Obtém ou define os dados armazenados no DataColumn especificado.

Item[Int32]

Obtém ou define os dados armazenados na coluna especificada por índice.

Item[String]

Obtém ou define os dados armazenados na coluna especificada por nome.

Item[DataColumn, DataRowVersion]

Obtém a versão especificada de dados armazenados no DataColumn especificado.

Item[Int32, DataRowVersion]

Obtém os dados armazenados na coluna, especificados pelo índice e a versão dos dados a serem recuperados.

Item[String, DataRowVersion]

Obtém a versão especificada de dados armazenados na coluna nomeada.

Item[DataColumn]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém ou define os dados armazenados no 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

Um DataColumn que contém os dados.

Valor da propriedade

Um Object que contém os dados.

Exceções

A coluna não pertence a essa tabela.

O column é nulo.

Ocorreu uma tentativa de definir um valor em uma linha excluída.

Os tipos de dados do valor e a coluna não correspondem.

Exemplos

Os exemplos a seguir demonstram o uso da Item[] propriedade para obter e definir o valor de um índice de coluna específico. O primeiro exemplo obtém o valor da primeira coluna em qualquer linha que um usuário clica em um DataGrid controle. O segundo define um valor passado como um argumento para o 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

Comentários

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para obter exceções que possam ser geradas.

Aplica-se a

Item[Int32]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém ou define os dados armazenados na coluna especificada por í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

O índice com base em zero da coluna.

Valor da propriedade

Um Object que contém os dados.

Exceções

Ocorre quando você tenta definir um valor em uma linha excluída.

O argumento columnIndex está fora do intervalo.

Ocorre quando você define o valor e o Type do novo valor não corresponde a DataType.

Exemplos

Os exemplos a seguir demonstram o uso da Item[] propriedade para obter e definir o valor de um índice de coluna específico. O primeiro exemplo obtém o valor da primeira coluna em qualquer linha que um usuário clica em um DataGrid controle.

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

Comentários

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se for uma edição, confira EndEdit as exceções que podem ser geradas.

Aplica-se a

Item[String]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém ou define os dados armazenados na coluna especificada por nome.

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

O nome da coluna.

Valor da propriedade

Um Object que contém os dados.

Exceções

A coluna especificada por columnName não pode ser encontrada.

Ocorre quando você tenta definir um valor em uma linha excluída.

Ocorre quando você define um valor e seu Type não corresponde a DataType.

Ocorre quando você tentar inserir um valor nulo em uma coluna em que AllowDBNull está definido como false.

Exemplos

Os exemplos a seguir demonstram o uso da Item[] propriedade para obter e definir o valor de um índice de coluna específico. O primeiro exemplo obtém o valor da primeira coluna em qualquer linha que um usuário clica em um DataGrid controle. O segundo define um valor passado como um argumento para o 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

Comentários

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para obter exceções que possam ser geradas.

Aplica-se a

Item[DataColumn, DataRowVersion]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém a versão especificada de dados armazenados no DataColumn especificado.

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

Um DataColumn que contém informações sobre a coluna.

version
DataRowVersion

Um dos valores DataRowVersion que especifica a versão de linha que você deseja. Os valores possíveis são Default, Original, Current e Proposed.

Valor da propriedade

Um Object que contém os dados.

Exceções

A coluna não pertence à tabela.

O argumento column contém null.

A linha não tem esta versão de dados.

Exemplos

O exemplo a seguir obtém o valor atual de uma célula clicada no DataGrid controle .

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

Comentários

O version não deve ser confundido com a RowState propriedade . O version argumento descreve o estado dos dados contidos pela coluna em relação ao valor original da coluna.

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para obter exceções que possam ser geradas.

Confira também

Aplica-se a

Item[Int32, DataRowVersion]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém os dados armazenados na coluna, especificados pelo índice e a versão dos dados a serem recuperados.

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

O índice com base em zero da coluna.

version
DataRowVersion

Um dos valores DataRowVersion que especifica a versão de linha que você deseja. Os valores possíveis são Default, Original, Current e Proposed.

Valor da propriedade

Um Object que contém os dados.

Exceções

O argumento columnIndex está fora do intervalo.

Os tipos de dados do valor e a coluna não correspondem.

A linha não tem esta versão de dados.

Ocorreu uma tentativa de definir um valor em uma linha excluída.

Exemplos

O exemplo a seguir obtém o valor atual de uma coluna por meio da Item[] propriedade do 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

Comentários

Você só pode criar ou atualizar uma linha depois de chamar o BeginEdit método; da mesma forma, o EndEdit método deve ser chamado para confirmar a edição. Depois de chamar o EndEdit método e antes de chamar o AcceptChanges método , as representações internas dos valores originais e novos propostos são armazenadas. Portanto, até chamar o AcceptChanges, você pode usar o version argumento para especificar qual versão do valor de uma coluna você precisa, seja o DataRowVersion.Original ou DataRowVersion.Proposedo . No entanto, assim que você chamar o AcceptChanges método , a versão da coluna será revertida para DataRowVersion.Original. Se a linha for nova, você também poderá passar DataRowVersion.Default o parâmetro para recuperar o valor padrão da coluna. Ao passar DataRowVersion.Current, a propriedade retorna o valor atual, qualquer que seja sua versão.

Observação

O BeginEdit método é chamado implicitamente quando você altera o valor de um controle associado a dados ou quando um DataRow objeto é adicionado ao DataRowCollection; o EndEdit método é chamado implicitamente quando você chama os seguintes métodos: o AcceptChanges método do DataRow objeto, o AcceptChanges método do DataTable objeto ou o CancelEdit método .

Por outro lado, a DataRowVersion enumeração Current retorna a versão dos dados após o EndEdit método ter sido chamado.

O version argumento não deve ser confundido com a RowState propriedade . O version argumento descreve o estado dos dados contidos pela coluna em relação ao valor original da coluna. A RowState propriedade descreve o estado da linha inteira em relação ao pai DataTable.

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para obter exceções que possam ser geradas.

Aplica-se a

Item[String, DataRowVersion]

Origem:
DataRow.cs
Origem:
DataRow.cs
Origem:
DataRow.cs

Obtém a versão especificada de dados armazenados na coluna nomeada.

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

O nome da coluna.

version
DataRowVersion

Um dos valores DataRowVersion que especifica a versão de linha que você deseja. Os valores possíveis são Default, Original, Current e Proposed.

Valor da propriedade

Um Object que contém os dados.

Exceções

A coluna especificada por columnName não pode ser encontrada.

Os tipos de dados do valor e a coluna não correspondem.

A linha não tem esta versão de dados.

A linha foi excluída.

Exemplos

O exemplo a seguir obtém a versão atual dos dados em uma célula clicada de um DataGrid controle .

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

Comentários

A versão não deve ser confundida com a RowState propriedade . O version argumento descreve o estado dos dados contidos pela coluna em relação ao valor original da coluna. A RowState propriedade descreve o estado da linha inteira em relação ao pai DataTable.

Quando você define a propriedade, uma exceção será gerada se uma exceção ocorrer no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para obter exceções que possam ser geradas.

Confira também

Aplica-se a