Postupy: Řazení a filtrování dat ADO.NET pomocí komponenty Windows Forms BindingSource

Funkci řazení a filtrování můžete zveřejnit prostřednictvím BindingSource vlastností Sort a Filter . Jednoduché řazení můžete použít v případě, že podkladovým zdrojem dat je , a pokud je zdrojem dat , můžete použít filtrování a pokročilé IBindingList IBindingListView řazení. Vlastnost vyžaduje standardní syntaxi ADO.NET: řetězec představující název sloupce dat ve zdroji dat, za nímž následuje , nebo k určení, jestli se má seznam seřadit vzestupně nebo Sort ASC DESC sestupně. Pokročilé řazení nebo řazení s více sloupci můžete nastavit tak, že jednotlivé sloupce oddělíte oddělovačem čárek. Vlastnost Filter přebírá řetězcový výraz.

Poznámka

Ukládání citlivých informací, jako je heslo, v připojovacím řetězci může mít vliv na zabezpečení vaší aplikace. Bezpečnější způsob, jak řídit přístup k databázi, je ověřování systému Windows (označované také jako integrované zabezpečení). Další informace najdete v tématu Ochrana informací o připojení.

Filtrování dat pomocí BindingSource

  • Nastavte Filter vlastnost na výraz, který chcete.

    V následujícím příkladu kódu je výraz název sloupce následovaný hodnotou, kterou chcete pro sloupec použít.

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

Řazení dat pomocí BindingSource

  1. Nastavte vlastnost na název sloupce, za ním který má následovat nebo , aby Sort ASC DESC označoval vzestupné nebo sestupné pořadí.

  2. Více sloupců oddělte čárkou.

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

Příklad

Následující příklad kódu načte data z tabulky Customers ukázkové databáze Northwind do ovládacího prvku a vyfiltruje a DataGridView seřadí zobrazená 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

Probíhá kompilace kódu

Pokud chcete spustit tento příklad, vložte kód do formuláře, který obsahuje BindingSource pojmenovaný BindingSource1 a DataGridView pojmenovaný dataGridView1 . Zpracování události Load pro formulář a volání v InitializeSortedFilteredBindingSource metodě obslužné rutiny události načtení

Viz také