有没有办法像这样过滤C#DataView?

时间:2019-12-17 09:23:02

标签: c# winforms datatable dataview bindingsource

我正在用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;

这里的问题是我将获得所有数据(编码非常好)。当单词不是以正确的字母开头时,我不想获取数据。例如

  

编码很简单。

我想成为

  

“非常编码”或“非常编码”。

我想要正确的首字母,但单词的位置无关紧要。

有人知道怎么做吗?

1 个答案:

答案 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
}