Практическое руководство. Сортировка и фильтрация данных ADO.NET с помощью компонента BindingSource в Windows Forms
Возможности сортировки и фильтрации элемента управления BindingSource можно предоставить приложениям с помощью свойств Sort и Filter. Если базовый источник данных представляет собой IBindingList, может использоваться простая сортировка; если же источник данных представляет собой IBindingListView, может использоваться фильтрация и расширенная сортировка. Свойство Sort требует использования стандартного синтаксиса ADO.NET: строка, представляющая собой имя столбца данных в источнике данных, после которой ставится ASC или DESC для указания на порядок сортировки списка по возрастанию или убыванию. При задании расширенной сортировки или сортировки по нескольким столбцам столбцы отделяются запятыми-разделителями. Свойство Filter принимает в качестве значения строковое выражение.
Примечание
Хранение в строке подключения конфиденциальных сведений, таких как пароль, может привести к снижению уровня защиты приложения.Использование проверки подлинности Windows (также называемой встроенными средствами безопасности) — более безопасный способ управления доступом к базе данных.Дополнительные сведения см. в разделе Защита сведений о соединении (ADO.NET).
Фильтрация данных с помощью BindingSource
Присвойте свойству Filter в качестве значения необходимое выражение.
В следующем примере кода выражение представляет собой имя столбца, после которого указано требуемое для столбца значение.
BindingSource1.Filter = "ContactTitle='Owner'"
BindingSource1.Filter = "ContactTitle='Owner'";
Сортировка данных с помощью BindingSource
Присвойте свойству Sort в качестве значения необходимое имя столбца, после которого укажите ASC или DESC, чтобы задать порядок сортировки по возрастанию или убыванию.
Несколько столбцов разделяются запятыми.
BindingSource1.Sort = "Country DESC, Address ASC"
BindingSource1.Sort = "Country DESC, Address ASC";
Пример
В следующем примере кода производится загрузка данных из таблицы "Customers" демонстрационной базы данных "Northwind" в элемент управления 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;
}
Компиляция кода
Для выполнения кода данного примера скопируйте его в форму, содержащую элемент управления BindingSource с именем BindingSource1 и элемент управления DataGridView с именем dataGridView1. Создайте обработчик событий Load для формы и вызовите InitializeSortedFilteredBindingSource в методе обработчика событий загрузки.
См. также
Задачи
Практическое руководство. Установка образцов баз данных