Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode acessar o conteúdo de um DataTable usando as coleções Rows e Columns do DataTable. Você também pode usar o método Select para retornar subconjuntos de dados em um DataTable de acordo com critérios, incluindo critérios de pesquisa, ordem de ordenação e estado da linha. Além disso, você pode usar o Find método do DataRowCollection ao pesquisar uma linha específica usando um valor de chave primária.
O Select método do DataTable objeto retorna um conjunto de DataRow objetos que correspondem aos critérios especificados.
Select usa argumentos opcionais de uma expressão de filtro, expressão de classificação e DataViewRowState. A expressão de filtro identifica quais linhas retornar com base nos valores DataColumn, como LastName = 'Smith'. A expressão de classificação segue convenções SQL padrão para ordenação de colunas, por exemplo LastName ASC, FirstName ASC. Para obter regras sobre como escrever expressões, consulte a Expression propriedade da DataColumn classe.
Dica
Se você estiver executando várias chamadas para o Select método de uma DataTable, poderá aumentar o desempenho criando primeiro um DataView para o DataTable. Criando os DataView indexa as linhas da tabela. O método em Select seguida usa esse índice, reduzindo significativamente o tempo para gerar o resultado da consulta. Para obter informações sobre como criar um DataView para um DataTable, consulte DataViews.
O método Select determina qual versão das linhas deve ser exibida ou manipulada com base em um DataViewRowState. A tabela a seguir descreve os possíveis DataViewRowState valores de enumeração.
| Valor de DataViewRowState | Descrição |
|---|---|
| CurrentRows | Linhas atuais, incluindo linhas inalteradas, adicionadas e modificadas. |
| Excluída | Uma linha excluída. |
| ModifiedCurrent | Uma versão atual, que é uma versão modificada dos dados originais. (Consulte ModifiedOriginal.) |
| ModifiedOriginal | A versão original de todas as linhas que foram modificadas. A versão atual está disponível usando ModifiedCurrent. |
| Adicionado | Uma nova linha. |
| Nenhum | Nenhum. |
| OriginalRows | Linhas originais, incluindo linhas inalteradas e excluídas. |
| Inalterado | Uma linha inalterada. |
No exemplo a seguir, o DataSet objeto é filtrado para que você esteja trabalhando apenas com linhas que DataViewRowState estão definidas como CurrentRows.
Dim column As DataColumn
Dim row As DataRow
Dim currentRows() As DataRow = _
workTable.Select(Nothing, Nothing, DataViewRowState.CurrentRows)
If (currentRows.Length < 1 ) Then
Console.WriteLine("No Current Rows Found")
Else
For Each column in workTable.Columns
Console.Write(vbTab & column.ColumnName)
Next
Console.WriteLine(vbTab & "RowState")
For Each row In currentRows
For Each column In workTable.Columns
Console.Write(vbTab & row(column).ToString())
Next
Dim rowState As String = _
System.Enum.GetName(row.RowState.GetType(), row.RowState)
Console.WriteLine(vbTab & rowState)
Next
End If
DataRow[] currentRows = workTable.Select(
null, null, DataViewRowState.CurrentRows);
if (currentRows.Length < 1 )
Console.WriteLine("No Current Rows Found");
else
{
foreach (DataColumn column in workTable.Columns)
Console.Write("\t{0}", column.ColumnName);
Console.WriteLine("\tRowState");
foreach (DataRow row in currentRows)
{
foreach (DataColumn column in workTable.Columns)
Console.Write("\t{0}", row[column]);
Console.WriteLine("\t" + row.RowState);
}
}
O método Select pode ser usado para retornar linhas com valores diferentes de RowState ou valores de campo. O exemplo a seguir retorna uma DataRow matriz que faz referência a todas as linhas que foram excluídas e retorna outra DataRow matriz que faz referência a todas as linhas, ordenadas por CustLName, em que a CustID coluna é maior que 5. Para obter informações sobre como exibir as informações na Deleted linha, consulte Estados de linha e versões de linha.
' Retrieve all deleted rows.
Dim deletedRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.Deleted)
' Retrieve rows where CustID > 5, and order by CustLName.
Dim custRows() As DataRow = workTable.Select( _
"CustID > 5", "CustLName ASC")
// Retrieve all deleted rows.
DataRow[] deletedRows = workTable.Select(
null, null, DataViewRowState.Deleted);
// Retrieve rows where CustID > 5, and order by CustLName.
DataRow[] custRows = workTable.Select("CustID > 5", "CustLName ASC");