我正在用c#编写一些代码来过滤BindingSource
中的数据。
在DataTable
中,我只有一列,数据就是这样,
编码非常好
我想像我的示例一样,在每个空格之后从字符串中过滤数据,
var ss = "coding is ery";
var s = ss.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
var filter = ColumnName + " like \'%" + s[0] + "%\' ";
for (int i = 1; i < s.Length; i++)
{
filter = filter + "AND " + ColumnName + " like \'%" + s[i] + "%\' ";
}
BindingSource.Filter = filter;
这里的问题是我将获得所有数据(编码非常好)。当单词不是以正确的字母开头时,我不想获取数据。例如
编码很简单。
我想成为
“非常编码”或“非常编码”。
我想要正确的首字母,但单词的位置无关紧要。
有人知道怎么做吗?
答案 0 :(得分:0)
您需要通过以下方式进行检查:
var filter = "(" + columnName
+ " like \'" + s[0] + "%\' " // first word
+ " OR like \'% " + s[0] + "%\' )"; //in a sentence
for (int i = 1; i < s.Length; i++)
{
filter += "AND " + "(" + columnName
+ " like \'" + s[i] + "%\' " // first word
+ " OR like \'% " + s[i] + "%\' )"; //in a sentence
}