Nasıl yapılır: Windows Forms BindingSource Bileşeni ile ADO.NET Verilerini Sıralama ve Filtreleme

ve Filter özellikleri aracılığıyla Sort denetimin BindingSource sıralama ve filtreleme özelliğini kullanıma açabilirsiniz. Temel alınan veri kaynağı bir olduğunda basit sıralama uygulayabilir ve veri kaynağı bir IBindingListIBindingListViewolduğunda filtreleme ve gelişmiş sıralama uygulayabilirsiniz. Sort özelliği standart ADO.NET söz dizimi gerektirir: listenin artan veya azalan düzende sıralanıp sıralanmayacağını belirtmek için veri kaynağındaki ASCDESC bir veri sütununun adını temsil eden bir dize. Her sütunu virgül ayırıcısıyla ayırarak gelişmiş sıralama veya birden çok sütunlu sıralama ayarlayabilirsiniz. Filter özelliği bir dize ifadesi alır.

Dekont

Parola gibi hassas bilgilerin bağlantı dizesi depolanması uygulamanızın güvenliğini etkileyebilir. Windows Kimlik Doğrulaması (tümleşik güvenlik olarak da bilinir) kullanılarak bir veritabanına erişimi denetlemek için daha güvenli bir yoldur. Daha fazla bilgi için bkz. Bağlan Bilgilerini Koruma.

BindingSource ile verileri filtrelemek için

  • Filter özelliğini istediğiniz ifade olarak ayarlayın.

    Aşağıdaki kod örneğinde, ifade bir sütun adı ve ardından sütun için istediğiniz değerdir.

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

BindingSource ile verileri sıralamak için

  1. Sort Özelliğini, ardından ASC istediğiniz sütun adına veya artan veya DESC azalan düzeni belirtmek için ayarlayın.

  2. Birden çok sütunu virgülle ayırın.

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

Örnek

Aşağıdaki kod örneği, Northwind örnek veritabanının Customers tablosundaki verileri bir DataGridView denetime yükler ve görüntülenen verileri filtreler ve sıralar.

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

Kod Derleniyor

Bu örneği çalıştırmak için, kodu adlandırılmış ve adlandırılmış BindingSource1dataGridView1bir içeren bir BindingSourceDataGridView forma yapıştırın. Formun Load olayını işleyip yük olayı işleyici yönteminde çağrısında InitializeSortedFilteredBindingSource bulunur.

Ayrıca bkz.