Partilhar via


DataRow.Item[] Propriedade

Definição

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

Sobrecargas

Item[DataColumn]

Obtém ou define os dados armazenados no DataColumnespecificado.

Item[Int32]

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

Item[String]

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

Item[DataColumn, DataRowVersion]

Obtém a versão especificada dos dados armazenados no DataColumnespecificado.

Item[Int32, DataRowVersion]

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

Item[String, DataRowVersion]

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

Item[DataColumn]

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

Obtém ou define os dados armazenados no DataColumnespecificado.

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 esta tabela.

O column é nulo.

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

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

Exemplos

Os exemplos a seguir demonstram o uso da propriedade Item[] 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 controle DataGrid. 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 é gerada se ocorrer uma exceção no evento ColumnChanging.

Se essa for uma edição imediata, consulte EndEdit para as exceções que podem 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 pelo í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 baseado 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 DataType.

Exemplos

Os exemplos a seguir demonstram o uso da propriedade Item[] 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 controle 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

Comentários

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

Se essa for uma edição, consulte EndEdit para 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 pelo 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ê tenta inserir um valor nulo em uma coluna em que AllowDBNull é definido como false.

Exemplos

Os exemplos a seguir demonstram o uso da propriedade Item[] 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 controle DataGrid. 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 é gerada se ocorrer uma exceção no evento ColumnChanging.

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

Aplica-se a

Item[DataColumn, DataRowVersion]

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

Obtém a versão especificada dos dados armazenados no DataColumnespecificado.

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 desejada. Os valores possíveis são Default, Original, Currente Proposed.

Valor da propriedade

Um Object que contém os dados.

Exceções

A coluna não pertence à tabela.

O argumento column contém nulo.

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

Exemplos

O exemplo a seguir obtém o valor atual de uma célula clicada no controle 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

Comentários

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

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

Se essa for uma edição imediata, consulte EndEdit para as exceções que podem 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 pela 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 baseado em zero da coluna.

version
DataRowVersion

Um dos valores DataRowVersion que especifica a versão de linha desejada. Os valores possíveis são Default, Original, Currente 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 da coluna não correspondem.

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

Foi feita 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 propriedade Item[] do objeto 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

Comentários

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

Nota

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

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

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

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

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

Aplica-se a

Item[String, DataRowVersion]

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

Obtém a versão especificada dos 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 desejada. Os valores possíveis são Default, Original, Currente 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 da coluna não correspondem.

A linha não tem essa 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 controle 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

Comentários

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

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

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

Confira também

Aplica-se a