-1
我使用的datagridview绑定到数据表中显示我的记录,我有这样的(只是举例)记录
名称国家市
过滤器的datagridview使用数据视图
JAck Country1 City1
Name2 Country1 City2
JACK Country2 City1
多个关键字
我有文本框搜索我不想使用这个文本框在这个datagridview中搜索多个关键字 我想例如得到Country1的所有记录,并有名字插孔 我把一个字符串文本框这样
[JACK国家1]
我创建这个方法基于任何列
string query = "";
Boolean firsttime = true;
bool firstkeyword = true;
foreach (string se in txt_ar_recherche.Text.Trim().Split(' '))
{
string search = (Convert.ToString(" like '%") + se) + "%'";
if(!firstkeyword) query += " and ";
query += "(";
bool firstcolumn = true;
foreach (DataGridViewColumn col in grid.Columns)
{
if (col.Visible)
{
if (firsttime)
{
query += "Convert(" + col.Name + ",'System.String')" + search;
firsttime = false;
}
else
{
query += " or " + "Convert(" + col.Name + ",'System.String')" + search;
}
}
firstcolumn = false;
}
firstkeyword = false;
query += ")";
}
(grid.DataSource as DataTable).DefaultView.RowFilter = query;
创建动态的RowFilter查询,但它不工作,我不知道如何解决这个问题在datagridview的 我wan't创建的部份相同的文本框搜索该数据表使用JavaScript mutilple关键字搜索,这是一个演示https://datatables.net/
如何生成查询看起来像?什么不行?崩溃的应用程序?在某些列上进行错误的过滤? – Reniuz
做了一些测试,如果你看看你的查询..你会发现一个不相关的'或'可能会导致问题 – Reniuz
但没有或查询这样的loke(名称像'%JACK%'或国家像'%JACK%'或像'%JACK%'这样的城市)和(像'%country1%'这样的名字或像'%country1%'这样的国家或像'%country1%'这样的城市)它不起作用 –