如何在C#Windows窗体应用程序中搜索数据gridview?

时间:2014-02-17 13:03:34

标签: c# winforms gridview datagrid windows-forms-designer

我有一个表单,其中一个简单的gridview由数据库中的表填充,其中包含TicketID,Name,Company,Product等列。现在我想添加一个搜索功能,以便用户可以按客户名称或公司搜索或TicketID。

我该怎么做?我想在数据网格上方放置一个combox框,文本框和一个简单的“搜索”按钮。例如,当用户选择TicketID时,在文本框中输入“1”并按“搜索”,它应刷新数据网格,其中TicketID = 1。

现在我对如何实现它一无所知。谷歌搜索但没有发现任何有用的东西。所以在这方面的任何帮助都将受到赞赏。

问候。

7 个答案:

答案 0 :(得分:8)

您可以查看:

BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = columnNameToSearch + " like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = bs;

这将显示包含您选择的列中textbox1的文本的记录。我完全按照你的要求做了:)

答案 1 :(得分:2)

如果要根据搜索参数刷新DataSource,则需要根据“搜索”控件构建新的SQL查询:

最好显示从数据库获取数据的代码,
但这是我用手动SQL查询创建的镜头:

//...
StringBuilder query = new StringBuilder();
query.AppendLine("SELECT TicketID, Name, Company, Product");
query.AppendLine("FROM YourTable WHERE 1=1");
if (txtSearch.TextLength > 0)
{
    query.AppendLine("AND TicketID = @TicketID");
    //Here add sqlparameter with textbox value
}
//... and so on

答案 2 :(得分:1)

BindingSource bs = new BindingSource();
bs.DataSource = dgrid.DataSource;
bs.Filter = "Full_Name  like '%" + tsptxt_search.Text + "%'";
dgrid.DataSource = bs;

这适合我。

答案 3 :(得分:1)

BindingSource bs = new BindingSource(); 
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "[database column Name To Search] like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = bs;

答案 4 :(得分:0)

你需要什么,过滤,而不是搜索......搜索突出显示集合中的正确行

将网格数据源设置为DataTable.Select方法

的结果
dtData.Select("TicketID = 1")

另请查看此post

答案 5 :(得分:0)

 DataSet ds;
 DataView dv;

 public Form1()
    {
        InitializeComponent();
        ds = new DataSet();
       dv = new DataView();
    } 

private void Form1_Load(object sender, EventArgs e)
{
    ds=SelectStudents();            
    dv.Table = ds.Tables[0];
    dataGridView1.DataSource = dv; 
}

现在在文本框的text_changed事件中,写下代码

dv.RowFilter = "StudentName like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = dv;

答案 6 :(得分:0)

为搜索输入创建文本框,并在其TextChanged事件

上使用以下代码
varchar