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

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

Observação:

Armazenar informações confidenciais, sistema autônomo uma senha, dentro da cadeia de conexão podem 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 Proteger seqüências de caracteres de conexão.

Para filtrar dados com o BindingSource

  • conjunto o Filter propriedade a expressão desejada.

    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. conjunto o Sort propriedade do nome da coluna que deseja seguido 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 do tabela Customers do banco de dados de exemplo Northwind para um DataGridView controle e filtros 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 chamada BindingSource1 e um DataGridView chamada dataGridView1. Manipular o Load evento do formulário e a telefonar InitializeSortedFilteredBindingSource no carregamento manipulador de eventos método.

Consulte também

Tarefas

Como: Instalar bancos de dados de exemplo

Referência

Sort

Filter

Outros recursos

O Componente BindingSource