Vorgehensweise: Sortieren und Filtern von ADO.NET-Daten mit der BindingSource-Komponente in Windows Forms
Sie können die Sortier- und Filterfunktionalität des BindingSource-Steuerelements über die Sort- und Filter-Eigenschaften verfügbar machen. Sie können einfache Sortierung anwenden, wenn es sich bei der zugrunde liegenden Datenquelle um IBindingList handelt, und Sie können Filterung und erweiterte Sortierung anwenden, wenn die Datenquelle eine IBindingListView ist. Die Sort-Eigenschaft erfordert standardmäßige ADO.NET-Syntax: eine Zeichenfolge, die den Namen einer Datenspalte in der Datenquelle angibt, gefolgt von ASC
oder DESC
, um anzugeben, ob die Liste in aufsteigender oder absteigender Reihenfolge sortiert werden soll. Sie können erweiterte Sortierung oder mehrspaltige Sortierung festlegen, indem Sie jede Spalte mit einem Kommatrennzeichen trennen. Die Filter-Eigenschaft verwendet einen Zeichenfolgenausdruck.
Hinweis
Das Speichern vertraulicher Informationen (z. B. eines Kennworts) innerhalb der Verbindungszeichenfolge kann die Sicherheit einer Anwendung beeinträchtigen. Der Zugriff auf eine Datenbank lässt sich mithilfe der Windows-Authentifizierung (wird auch als integrierte Sicherheit bezeichnet) sicherer steuern. Weitere Informationen finden Sie unter Protecting Connection Information (Schützen von Verbindungsinformationen).
So filtern Sie Daten mit der BindingSource
Legen Sie bei der Filter-Eigenschaft die gewünschte Farbe fest.
Im folgenden Codebeispiel ist der Ausdruck ein Spaltenname gefolgt von einem Wert, den Sie für die Spalte benötigen.
BindingSource1.Filter = "ContactTitle='Owner'";
BindingSource1.Filter = "ContactTitle='Owner'"
So filtern Sie Daten mit der BindingSource
Legen Sie die Sort-Eigenschaft auf den Spaltennamen fest, dem Sie
ASC
oderDESC
folgen lassen möchten, um die aufsteigende oder absteigende Reihenfolge anzuzeigen.Trennen Sie mehrere Spalten mit einem Komma.
BindingSource1.Sort = "Country DESC, Address ASC";
BindingSource1.Sort = "Country DESC, Address ASC"
Beispiel
Im folgenden Codebeispiel werden Daten aus der Kundentabelle der Northwind-Beispieldatenbank in ein DataGridView-Steuerelement geladen und die angezeigten Daten gefiltert und sortiert.
private void InitializeSortedFilteredBindingSource()
{
// Create the connection string, data adapter and data table.
SqlConnection connectionString =
new SqlConnection("Initial Catalog=Northwind;" +
"Data Source=localhost;Integrated Security=SSPI;");
SqlDataAdapter customersTableAdapter =
new SqlDataAdapter("Select * from Customers", connectionString);
DataTable customerTable = new DataTable();
// Fill the adapter with the contents of the customer table.
customersTableAdapter.Fill(customerTable);
// Set data source for BindingSource1.
BindingSource1.DataSource = customerTable;
// Filter the items to show contacts who are owners.
BindingSource1.Filter = "ContactTitle='Owner'";
// Sort the items on the company name in descending order.
BindingSource1.Sort = "Country DESC, Address ASC";
// Set the data source for dataGridView1 to BindingSource1.
dataGridView1.DataSource = BindingSource1;
}
Private Sub InitializeSortedFilteredBindingSource()
' Create the connection string, data adapter and data table.
Dim connectionString As New SqlConnection("Initial Catalog=Northwind;" & _
"Data Source=localhost;Integrated Security=SSPI;")
Dim customersTableAdapter As New SqlDataAdapter("Select * from Customers", _
connectionString)
Dim customerTable As New DataTable()
' Fill the adapter with the contents of the customer table.
customersTableAdapter.Fill(customerTable)
' Set data source for BindingSource1.
BindingSource1.DataSource = customerTable
' Filter the items to show contacts who are owners.
BindingSource1.Filter = "ContactTitle='Owner'"
' Sort the items on the company name in descending order.
BindingSource1.Sort = "Country DESC, Address ASC"
' Set the data source for dataGridView1 to BindingSource1.
dataGridView1.DataSource = BindingSource1
End Sub
Kompilieren des Codes
Um dieses Beispiel auszuführen, fügen Sie den Code in ein Formular ein, das einen BindingSource als BindingSource1
benannten und einen DataGridView als dataGridView1
benannten enthält. Behandeln Sie das Load-Ereignis für das Formular und rufen Sie InitializeSortedFilteredBindingSource
in der geladenen Ereignismethode der Handler auf.
Weitere Informationen
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für