使用like运算符的c#datatable过滤器

时间:2017-05-23 06:03:13

标签: c# wpf

dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "*'";

工作正常,

但我希望使用 0-9

中的数字过滤所有jounral_name次?

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:2)

您需要的是%运算符:

dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "%'";

以下是使用LIKE

lesso with examples

在这里我们对MSDN语法和用法的解释:

Wildcard character    Description           Example

      %               Any string of zero    WHERE title LIKE '%computer%' 
                      or more characters.   finds all book titles with 
                                            the word 'computer' anywhere in 
                                            the book title.

编辑:

抱歉缺乏关注。如果你说:

  

但我希望使用 0-9

中的数字过滤所有jounral_name次?

另外,您可以使用[ ]运算符(我在发布的MSDN链接中也有描述)。它指定:

  

指定范围内的任何单个字符([a-f])或set([abcdef])。

dtjr.DefaultView.RowFilter = " Journal_Name Like '[0-9]%'";

答案 1 :(得分:0)

此处未使用like关键字,但您可以使用下面的Regexlinq来实现目标

    dtjr= dtjr.AsEnumerable()
     .Where(r => Regex.IsMatch(r["jounral_name"].ToString(), "^[0-9]+"))
     .CopyToDataTable();