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

Možnosti řazení a filtrování ovládacích BindingSource prvků můžete zveřejnit prostřednictvím Sort vlastností a Filter vlastností. Jednoduché řazení můžete použít, když je podkladový zdroj dat , IBindingLista můžete použít filtrování a rozšířené řazení, když je IBindingListViewzdrojem dat . Vlastnost Sort vyžaduje standardní syntaxi ADO.NET: řetězec představující název sloupce dat ve zdroji dat, za nímž následuje ASC , nebo DESC určit, zda má být seznam seřazen vzestupně nebo sestupně. Rozšířené řazení nebo řazení s více sloupci můžete nastavit tak, že jednotlivé sloupce oddělíte oddělovačem čárky. Vlastnost Filter přebírá řetězcový výraz.

Poznámka:

Ukládání citlivých informací, například hesla, v rámci připojovací řetězec může ovlivnit 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 naleznete v tématu Ochrana Připojení ion informace.

Filtrování dat pomocí BindingSource

  • Filter Nastavte vlastnost na požadovaný výraz.

    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. Sort Nastavte vlastnost na název sloupce, za kterým chcete následovatASC, nebo DESC chcete označit vzestupné nebo sestupné pořadí.

  2. Oddělte více sloupců čá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 DataGridView ovládacího prvku a filtruje a 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

Chcete-li spustit tento příklad, vložte kód do formuláře, který obsahuje pojmenovaný BindingSourceBindingSource1 a pojmenovaný DataGridViewdataGridView1. Zpracujte Load událost formuláře a volání InitializeSortedFilteredBindingSource v metodě obslužné rutiny události načtení.

Viz také