다음을 통해 공유


방법: Windows Forms BindingSource 구성 요소를 사용하여 ADO.NET 데이터 정렬 및 필터링

업데이트: 2007년 11월

SortFilter 속성을 통해 BindingSource 컨트롤의 정렬 및 필터링 기능을 노출할 수 있습니다. 내부 데이터 소스가 IBindingList일 때는 간단한 정렬을 적용하고 데이터 소스가 IBindingListView일 때는 고급 정렬 및 필터링을 적용할 수 있습니다. Sort 속성에는 표준 ADO.NET 구문이 필요합니다. 이 구문에서는 데이터 소스의 데이터 열 이름을 나타내는 문자열 뒤에 ASC 또는 DESC를 사용하여 목록을 오름차순으로 정렬할지 아니면 내림차순으로 정렬할지를 나타냅니다. 쉼표 구분 기호로 각 열을 구분하여 고급 정렬 또는 여러 열 정렬을 설정할 수 있습니다. Filter 속성에는 문자열 식을 사용합니다.

참고:

연결 문자열에 중요한 정보(예: 암호)를 저장하면 응용 프로그램 보안 문제가 발생할 수 있습니다. 데이터베이스 액세스를 제어할 경우에는 통합 보안이라고도 하는 Windows 인증을 사용하는 방법이 더 안전합니다. 자세한 내용은 연결 정보 보호(ADO.NET)를 참조하십시오.

BindingSource를 사용하여 데이터를 필터링하려면

  • Filter 속성을 원하는 식으로 설정합니다.

    다음 코드 예제에서는 열 이름과 해당 열에 사용할 값으로 식이 구성됩니다.

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

BindingSource를 사용하여 데이터를 정렬하려면

  1. 열 이름 뒤에 오름차순인지 내림차순인지 나타내는 ASC 또는 DESC가 오도록 Sort 속성을 설정합니다.

  2. 열을 여러 개 사용할 때는 쉼표로 각각 구분합니다.

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

예제

다음 코드 예제에서는 Northwind 샘플 데이터베이스의 Customers 테이블의 데이터를 DataGridView 컨트롤에 로드하고 표시되는 데이터를 필터링 및 정렬합니다.

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;

        }

코드 컴파일

이 예제를 실행하려면 이름이 BindingSource1인 BindingSource와 이름이 dataGridView1인 DataGridView가 들어 있는 폼에 코드를 붙여넣습니다. 폼에 대한 Load 이벤트를 처리하고 load 이벤트 처리기 메서드에서 InitializeSortedFilteredBindingSource를 호출합니다.

참고 항목

작업

방법: 샘플 데이터베이스 설치

참조

Sort

Filter

기타 리소스

BindingSource 구성 요소