Como: Classificar e filtrar dados ADO.NET com o componente BindingSource do Windows Forms

Você pode expor a classificação e filtragem a capacidade de BindingSource controle por meio de Sort e Filter Propriedades. Você pode aplicar a classificação simples quando a fonte de dados subjacente é um IBindingList, e você pode aplicar a filtragem avançada de classificação quando a fonte de dados é um IBindingListView. O Sort propriedade requer um padrão ADO.NET sintaxe: seguido de uma seqüência de caracteres que representa o nome de uma coluna de dados na fonte de dados ASC ou DESC para indicar se a lista deve ser classificada em crescente ou decrescente de ordem. Você pode definir a classificação avançada ou classificação de várias colunas, separando cada coluna com um separador de vírgula. O Filter propriedade tem uma expressão de seqüência de caracteres.

ObservaçãoObservação

Armazenar informações confidenciais, como, por exemplo, uma senha, dentro da seqüência de conexão pode afetar a segurança do seu aplicativo. Usando a autenticação do Windows (também conhecida como segurança integrada) é uma maneira mais segura de controlar o acesso a um banco de dados. Para obter mais informações, consulte Protecting Connection Information (ADO.NET).

Para filtrar dados com o BindingSource

  • Definir o Filter propriedade para a expressão que desejar.

    No exemplo de código a seguir, a expressão é um nome de coluna, seguido pelo valor que você deseja para a coluna.

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

Para classificar os dados com o BindingSource

  1. Definir o Sort propriedade para o nome da coluna que deseja seguido por ASC ou DESC para indicar a ordem crescente ou decrescente.

  2. Separe várias colunas com uma vírgula.

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

Exemplo

O exemplo de código a seguir carrega os dados da tabela Customers do banco de dados de exemplo Northwind em um DataGridView de controle e filtra e classifica os dados exibidos.

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;

        }

Compilando o código

Para executar esse exemplo, cole o código em um formulário que contém um BindingSource chamado BindingSource1 e um DataGridView chamado dataGridView1. Lidar com o Load evento para o formulário e a chamada InitializeSortedFilteredBindingSource no método de manipulador do carga do evento.

Consulte também

Tarefas

Como: Instalar bancos de dados de amostra

Referência

Sort

Filter

Outros recursos

O Componente BindingSource