En Rowfilter, ¿cómo seleccionar todas las columnas de la tabla en C #?
Pregunta
Aquí está mi código ...
Aquí tengo un cuadro de texto.Al escribir algún texto, coincide automáticamente con la cadena y Encuentra toda la fila ..
ahora ..pero En mi código ... solo filtre usando "ClientName" quiero buscar ese texto de Toda la columna ..
Cómo especificar la columna en la filtro RowFilter por favor dame solución
private void txtSearch_TextChanged(object sender, EventArgs e)
{
dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%'";
dgClientMaster.DataSource = dv;
}
Solución
Pruebe este código:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (DataColumn column in dv.Table.Columns)
{
sb.AppendFormat("{0} Like '%{1}%' OR ", column.ColumnName, txtSearch.Text);
}
sb.Remove(sb.Length - 3, 3);
dv.RowFilter = sb.ToString();
dgClientMaster.DataSource = dv;
}
Otros consejos
Tendrá que especificar las columnas que desea buscar y separar con una cláusula de OR
, como esta:
dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%' OR ClientNickName Like '%" + txtSearch.Text + "%'";
Además, deberá escapar de las citas individuales, o obtendrá una consulta rota o problemas de inyección de SQL.
puedes intentar
dv.RowFilter = "Column1 + Column2 + Column3" + " Like '%" + txtSearch.Text + "%'";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow