Ler em inglês

Compartilhar 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 object this[System.Data.DataColumn column] { get; set; }

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Item[Int32]

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

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

public object this[int columnIndex] { get; set; }

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;
}

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Item[String]

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

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

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

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;
}

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Item[DataColumn, DataRowVersion]

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

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

public object this[System.Data.DataColumn column, System.Data.DataRowVersion version] { get; }

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]);
}

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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 object this[int columnIndex, System.Data.DataRowVersion version] { get; }

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.

Observação

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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 object this[string columnName, System.Data.DataRowVersion version] { get; }

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]);
}

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1