Procédure : trier et filtrer des données ADO.NET avec le composant BindingSource de Windows FormsHow to: Sort and Filter ADO.NET Data with the Windows Forms BindingSource Component

Vous pouvez exposer le tri et filtrage de BindingSource contrôler via le Sort et Filter propriétés.You can expose the sorting and filtering capability of BindingSource control through the Sort and Filter properties. Vous pouvez appliquer un tri simple lorsque la source de données sous-jacent est un IBindingList, et vous pouvez appliquer le filtrage et tri avancé lorsque la source de données est un IBindingListView.You can apply simple sorting when the underlying data source is an IBindingList, and you can apply filtering and advanced sorting when the data source is an IBindingListView. Le Sort propriété requiert une syntaxe ADO.NET standard : une chaîne représentant le nom d’une colonne de données dans la source de données suivie ASC ou DESC pour indiquer si la liste doit être triée dans l’ordre croissant ou décroissant.The Sort property requires standard ADO.NET syntax: a string representing the name of a column of data in the data source followed by ASC or DESC to indicate whether the list should be sorted in ascending or descending order. Vous pouvez définir le tri avancé ou un tri sur plusieurs colonnes en séparant chaque colonne par une virgule de séparation.You can set advanced sorting or multiple-column sorting by separating each column with a comma separator. Le Filter propriété prend une expression de chaîne.The Filter property takes a string expression.

Notes

Le stockage d'informations sensibles (telles qu'un mot de passe) dans la chaîne de connexion peut affecter la sécurité de votre application.Storing sensitive information, such as a password, within the connection string can affect the security of your application. L'utilisation de l'authentification Windows (également appelée sécurité intégrée) offre un moyen plus sûr de contrôler l'accès à une base de données.Using Windows Authentication (also known as integrated security) is a more secure way to control access to a database. Pour plus d’informations, consultez Protection des informations de connexion.For more information, see Protecting Connection Information.

Pour filtrer les données avec le composant BindingSourceTo filter data with the BindingSource

  • Définir le Filter propriété à l’expression que vous souhaitez.Set the Filter property to expression that you want.

    Dans l’exemple de code suivant, l’expression est un nom de colonne suivi par la valeur souhaitée pour la colonne.In the following code example, the expression is a column name followed by value that you want for the column.

BindingSource1.Filter = "ContactTitle='Owner'";
BindingSource1.Filter = "ContactTitle='Owner'"

Pour trier les données avec le composant BindingSourceTo sort data with the BindingSource

  1. Définir le Sort propriété le nom de colonne que vous souhaitez suivie ASC ou DESC pour indiquer le croissant ou décroissant.Set the Sort property to the column name that you want followed by ASC or DESC to indicate the ascending or descending order.

  2. Séparez plusieurs colonnes par une virgule.Separate multiple columns with a comma.

BindingSource1.Sort = "Country DESC, Address ASC";
BindingSource1.Sort = "Country DESC, Address ASC"

ExempleExample

L’exemple de code suivant charge les données à partir de la table Customers de la base de données Northwind dans un DataGridView contrôler et filtre et trie les données affichées.The following code example loads data from the Customers table of the Northwind sample database into a DataGridView control, and filters and sorts the displayed data.

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

Compilation du codeCompiling the Code

Pour exécuter cet exemple, collez le code dans un formulaire qui contient un BindingSource nommé BindingSource1 et un DataGridView nommé dataGridView1.To run this example, paste the code into a form that contains a BindingSource named BindingSource1 and a DataGridView named dataGridView1. Gérer le Load événement pour le formulaire et appelez InitializeSortedFilteredBindingSource dans la méthode de gestionnaire d’événements load.Handle the Load event for the form and call InitializeSortedFilteredBindingSource in the load event handler method.

Voir aussiSee also