Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Pode aceder ao conteúdo de um DataTable usando as coleções Rows e Columns da DataTable. Também pode usar o método Select para devolver subconjuntos dos dados num DataTable de acordo com critérios que incluam critérios de pesquisa, ordem e estado das linhas. Além disso, pode usar o Find método do DataRowCollection ao procurar uma determinada linha usando um valor de chave primária.
O Select método do DataTable objeto devolve um conjunto de DataRow objetos que correspondem aos critérios especificados.
Select aceita argumentos opcionais de uma expressão de filtro, expressão de ordenação e DataViewRowState. A expressão do filtro identifica quais as linhas a devolver com base em DataColumn valores, como LastName = 'Smith'. A expressão sort segue convenções SQL padrão para ordenar colunas, por exemplo LastName ASC, FirstName ASC. Para regras sobre escrita de expressões, veja a Expression propriedade da DataColumn classe.
Sugestão
Se estiver a realizar várias chamadas ao Select método de uma DataTable, pode aumentar o desempenho criando primeiro um DataView para a DataTable. Criando os DataView indexa as linhas da tabela. O Select método utiliza então esse índice, reduzindo significativamente o tempo para gerar o resultado da consulta. Para informações sobre como criar um DataView para uma DataTable, veja DataViews.
O Select método determina qual versão das linhas visualizar ou manipular com base num DataViewRowState. A tabela seguinte descreve os valores possíveis DataViewRowState de enumeração.
| Valor de DataViewRowState | Descrição |
|---|---|
| CurrentRows | Linhas atuais, incluindo linhas inalteradas, adicionadas e modificadas. |
| Eliminado | Uma linha excluída. |
| Corrente modificada | Uma versão atual, que é uma versão modificada dos dados originais. (Consulte ModifiedOriginal.) |
| Original Modificado | A versão original de todas as filas modificadas. A versão atual está disponível usando ModifiedCurrent. |
| Adicionado | Uma nova linha. |
| Nenhum | Nenhum. |
| Linhas Originais | Linhas originais, incluindo linhas inalteradas e eliminadas. |
| Inalterado | Uma linha inalterada. |
No exemplo seguinte, o DataSet objeto é filtrado para que apenas trabalhe com linhas que DataViewRowState estejam 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 devolver linhas com valores de RowState diferentes ou valores de campo diferentes. O exemplo seguinte devolve um DataRow array que faz referência a todas as linhas que foram eliminadas, e devolve outro DataRow array que faz referência a todas as linhas, ordenadas por CustLName, onde a CustID coluna é maior que 5. Para informações sobre como visualizar as informações na Deleted linha, consulte Estados da Linha e Versões da 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");
Ver também
- DataRow
- DataSet
- DataTable
- DataViewRowState
- Manipulação de dados num DataTable
- Estados de linha e versões de linha
- Visão geral ADO.NET