在DatagridView&FIlters中的文本框搜索内容
问题描述:
下面的代码工作,但我正在寻找更复杂的东西,那就是当我在定义的文本框中键入第二个名字或姓氏的字符时,整个名称(名字,第二名或姓氏)在DB中的单个列(“Nombre_Doctor”)中,所以它只是过滤它搜索所有列中的单字符。在DatagridView&FIlters中的文本框搜索内容
或者如何将它改变为当我放置在整个表上的任何值(数字或字符),并过滤它(再次填充DataGridView),导致在代码中你可以看到它Select *(all )从医生(表)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();
}
答
如果你想要做的是过滤基于搜索你的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)的列表。我希望它有帮助。
所以你想在“文本框”中输入“文本”,并且网格应该过滤掉除“文本”出现在*任何*列的所有行,更正? – OhBeWise
不,它必须过滤该列中[文本框]的任何“文本”,或者甚至必须过滤所有列中[文本框]的任何“文本”和/或“数字”。 –