Partager via


Comment : trier et filtrer des données ADO.NET avec le composant BindingSource Windows Forms

Mise à jour : novembre 2007

Vous pouvez exposer les fonctions de tri et de filtrage du contrôle BindingSource à l'aide des propriétés Sort et Filter. Vous pouvez appliquer le tri simple lorsque la source de données sous-jacente est un IBindingList, et vous pouvez appliquer le filtrage et le tri avancé lorsque la source de données est un IBindingListView. La propriété Sort requiert la syntaxe ADO.NET standard : une chaîne représentant le nom d'une colonne de données dans la source de données suivie de ASC ou DESC pour indiquer si la liste doit être triée dans l'ordre croissant ou décroissant. Vous pouvez définir un tri avancé ou un tri sur plusieurs colonnes en séparant chaque colonne par une virgule. La propriété Filter adopte une expression sous forme de chaîne.

Remarque :

Le stockage d'informations sensibles, comme un mot de passe, dans la chaîne de connexion peut affecter la sécurité de votre 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. For more information, see Protection des informations de connexion (ADO.NET).

Pour filtrer des données à l'aide de BindingSource

  • Affectez à la propriété Filter l'expression souhaitée.

    Dans l'exemple de code suivant, l'expression est un nom de colonne suivi de la valeur souhaitée pour cette colonne.

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

Pour trier des données à l'aide de BindingSource

  1. Affectez à la propriété Sort le nom de colonne souhaité suivi de ASC ou DESC pour indiquer l'ordre croissant ou décroissant.

  2. Séparez les différentes colonnes par une virgule.

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

Exemple

L'exemple de code suivant charge des données à partir de la table Customers de l'exemple de base de données Northwind dans un contrôle DataGridView, puis filtre et tri les données affichées.

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 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

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

        }

Compilation du code

Pour exécuter cet exemple, collez le code dans un formulaire contenant BindingSource nommé BindingSource1 et DataGridView nommé dataGridView1. Gérez l'événement Load pour le formulaire et appelez InitializeSortedFilteredBindingSource dans la méthode du gestionnaire d'événements de chargement.

Voir aussi

Tâches

Comment : installer des exemples de bases de données

Référence

Sort

Filter

Autres ressources

Composant BindingSource