Freigeben über


Anzeigen von Daten in einer DataTable

Sie können auf den Inhalt einer DataTable Datentabelle zugreifen, indem Sie die Rows und Columns Auflistungen der DataTable verwenden. Sie können die Select Methode auch verwenden, um Teilmengen der Daten in einem DataTable entsprechend den Kriterien einschließlich Suchkriterien, Sortierreihenfolge und Zeilenstatus zurückzugeben. Darüber hinaus können Sie die Find Methode der DataRowCollection verwenden, um nach einer bestimmten Zeile mit einem Primärschlüsselwert zu suchen.

Die Select Methode des DataTable Objekts gibt eine Reihe von DataRow Objekten zurück, die den angegebenen Kriterien entsprechen. Select verwendet optionale Argumente eines Filterausdrucks, eines Sortierausdrucks und von DataViewRowState. Der Filterausdruck gibt an, welche Zeilen basierend auf DataColumn Werten zurückgegeben werden sollen, zum Beispiel LastName = 'Smith'. Der Sortierausdruck folgt standardmäßigen SQL-Konventionen zum Sortieren von Spalten, z. B LastName ASC, FirstName ASC. . Regeln zum Schreiben von Ausdrücken finden Sie in der Expression Eigenschaft der DataColumn Klasse.

Tipp

Wenn Sie eine Reihe von Aufrufen für die Select Methode einer DataTable ausführen, können Sie die Leistung steigern, indem Sie zuerst eine DataView für die DataTable erstellen. Erstellen der Indizes der DataView Zeilen der Tabelle. Die Select Methode verwendet dann diesen Index, wodurch die Zeit zum Generieren des Abfrageergebnisses erheblich reduziert wird. Informationen zum Anlegen eines DataView in einer DataTable sehen Sie unter DataViews.

Die Select Methode bestimmt, welche Version der Zeilen angezeigt oder bearbeitet werden soll, basierend auf einem DataViewRowState. In der folgenden Tabelle werden die möglichen DataViewRowState Enumerationswerte beschrieben.

"DataViewRowState"-Wert BESCHREIBUNG
CurrentRows Aktuelle Zeilen einschließlich unveränderter, hinzugefügter und geänderter Zeilen.
Gelöscht Eine gelöschte Zeile.
ModifiedCurrent Eine aktuelle Version, bei der es sich um eine geänderte Version von Originaldaten handelt. (Siehe ModifiedOriginal.)
ModifiedOriginal Die ursprüngliche Version aller geänderten Zeilen. Die aktuelle Version ist mit ModifiedCurrent verfügbar.
Hinzugefügt Eine neue Zeile.
Nichts Keiner.
OriginalRows Ursprüngliche Zeilen, einschließlich unveränderter und gelöschter Zeilen.
Unverändert Eine nicht geänderte Zeile.

Im folgenden Beispiel wird das DataSet Objekt so gefiltert, dass Sie nur mit Zeilen arbeiten, deren DataViewRowState Eigenschaft auf CurrentRows festgelegt ist.

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

Die Select Methode kann verwendet werden, um Zeilen mit unterschiedlichen RowState Werten oder Feldwerten zurückzugeben. Im folgenden Beispiel wird ein DataRow Array zurückgegeben, das auf alle gelöschten Zeilen verweist, und ein weiteres DataRow Array zurück, das auf alle Zeilen verweist, sortiert nach CustLName, wobei die CustID Spalte größer als 5 ist. Informationen zum Anzeigen der Informationen in der Deleted Zeile finden Sie unter Zeilenzustände und Zeilenversionen.

' 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");

Siehe auch