Como: Classificar e filtrar dados ADO.NET com o componente BindingSource do Windows Forms
Você pode expor a capacidade de classificação e filtragem do controle por meio das BindingSourceSort propriedades e Filter . Você pode aplicar classificação simples quando a fonte de dados subjacente é um , e pode aplicar filtragem e classificação avançada quando a fonte de dados é um IBindingListIBindingListView. A Sort propriedade requer sintaxe de ADO.NET padrão: uma cadeia de caracteres que representa o nome de uma coluna de dados na fonte de dados seguida por ASC
ou para indicar se a lista deve ser classificada em ordem crescente ou DESC
decrescente. Você pode definir a classificação avançada ou a classificação em várias colunas separando cada coluna com um separador de vírgula. A Filter propriedade usa uma expressão de cadeia de caracteres.
Observação
O armazenamento das informações confidenciais, como uma senha, dentro da cadeia de conexão pode afetar a segurança do aplicativo. O uso da Autenticação do Windows (também conhecida como segurança integrada) é uma maneira mais segura de controlar o acesso a um banco de dados. Para obter mais informações, consulte Protegendo informações de conexão.
Filtrar os dados com o BindingSource
Defina a Filter propriedade como expressão desejada.
No exemplo de código a seguir, a expressão é um nome de coluna seguido pelo valor que você deseja para a coluna.
BindingSource1.Filter = "ContactTitle='Owner'";
BindingSource1.Filter = "ContactTitle='Owner'"
Classificar os dados com o BindingSource
Defina a propriedade como o nome da coluna que você deseja seguir ou
DESC
ASC
para indicar a Sort ordem crescente ou decrescente.Separe múltiplas colunas com uma vírgula.
BindingSource1.Sort = "Country DESC, Address ASC";
BindingSource1.Sort = "Country DESC, Address ASC"
Exemplo
O exemplo de código a seguir carrega dados da tabela Customers do banco de dados de exemplo Northwind em um DataGridView controle e filtra e classifica os dados exibidos.
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
Compilando o código
Para executar este exemplo, cole o código em um formulário que contém um nome e um BindingSourceDataGridView nome BindingSource1
dataGridView1
. Manipule o evento para o Load formulário e chame InitializeSortedFilteredBindingSource
no método load event handler.
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários