DatagridView&中的文本框搜索过滤内容

时间:2016-03-08 22:45:11

标签: c# datagridview filter

以下代码有效,但我正在寻找更复杂的东西,也就是当我在定义的文本框中键入第二个名字或姓氏的字符时,整个名称(名字,名字或名字)在一个列中( " Nombre_Doctor")在DB中,所以它只是过滤它搜索所有列中的sigle字符。

或者如何更改为当我在整个表上搜索任何值(数字或字符)并过滤它(再次填充DataGridView)时,在代码中可以看到它选择*(全部)来自DOCTORS(表)WHERE Nombre_Doctor(只有一列)......等等

非常感谢你。

LC

private void txtsearchpa_KeyUp(object sender, KeyEventArgs e)
{
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "Select * from [DOCTORS] where Nombre_Doctor like ('" + txtsearchdr.Text + "%')";
    cmd.ExecuteNonQuery();
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    DGV1.DataSource = dt; //DGV = DataGridView

    con.Close();  
} 

1 个答案:

答案 0 :(得分:0)

如果你想做的是根据搜索过滤你的GridView数据,我建议: 您有一个列表或集合,其中包含所有数据。我有这个例子:

   IEnumerable<Product> ListProduct = from Prod in LstProducts where Prod.Description.StartsWith(txtFind.Text) select Prod;
    dataGridView1.Rows.Clear();

    foreach (var item in ListProduct)
        this.dataGridView1.Rows.Add(item.Id, item.Status, item.Description, tipo.Price);

过滤所需列中的信息(描述)并使用所需的过滤器(StartsWith),但为此需要有一个对象列表(LstProducts)。我希望它有所帮助。