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;
    }

¿Fue útil?

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
scroll top