Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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");