在FilterExpression中替换MATCH MySQL函数

时间:2016-02-10 08:12:59

标签: c# mysql

我正在尝试开发一个软件的一部分,其中包含objectDataSource.FilterExpression。当我构建过滤器时,我有这个:

if (!txtBuscador.Text.Equals(String.Empty))
    {
        filtro += " AND MATCH(codigo_fichero, codigo_colectivo, codigo_ambito, codigo_area, titulo, resumen, palabras_clave, descriptores) AGAINST (\"" + txtBuscador.Text + "\" IN BOOLEAN MODE)";
    }

一切顺利,当我逐步调试时,我就在这一点上:

contador = Convert.ToInt32(ds.Tables[0].Compute("COUNT(nserie)", odsResultados.FilterExpression).ToString()); 

由于MATCH,应用程序抛出一个EvaluateException,所以有没有办法改变它并具有相同的功能。

提前致谢

1 个答案:

答案 0 :(得分:0)

MATCH不能使用FilterExpression,所以我不得不用另一个表达式替换它,在我的情况下使用OR ...

filtro += " AND codigo_fichero LIKE '%" + txtBuscador.Text + "%' OR codigo_colectivo LIKE '%" + txtBuscador.Text + "%' OR codigo_ambito LIKE '%" + txtBuscador.Text + "%' OR codigo_area LIKE '%" + txtBuscador.Text + "%' OR titulo LIKE '%" + txtBuscador.Text + "%' OR resumen LIKE '%" + txtBuscador.Text + "%'";