Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用like运算符的c#数据表过滤器_C#_Wpf - Fatal编程技术网

使用like运算符的c#数据表过滤器

使用like运算符的c#数据表过滤器,c#,wpf,C#,Wpf,工作正常 但我想过滤所有journral\u name以数字开头的0-9 我如何才能做到这一点?您需要的是%操作员: dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "*'"; 下面是对LIKE 下面是对语法和用法的解释: dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "%'";

工作正常

但我想过滤所有
journral\u name
以数字开头的0-9


我如何才能做到这一点?

您需要的是
%
操作员:

dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "*'";
下面是对
LIKE

下面是对语法和用法的解释:

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

对不起,没有引起注意。如你所说:

但我想过滤所有
journral\u name
以数字开头的0-9

不幸的是,在这种情况下,使用
[]
运算符(在我发布的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.
dtjr.DefaultView.RowFilter=@“日记账名称>'0%”和日记账名称<'9%”;

此处不使用
关键字,但您可以使用
Regex
linq
来实现您的目标

dtjr.DefaultView.RowFilter = @"Journal_Name > '0%' AND Journal_Name < '9%'";

你需要在这个问题上展开,并展示一些代码。很难说出你想要什么。我做了一个编辑,将数字范围包括在0到9之间。这使得查询更简单一些。看一看欢迎@shashisampige@shashisampige感谢StackOverflow的最好方法是RowFilter不像TSQL那样工作“在字符串的中间不允许通配符。例如,'t*xt”是不允许的。”-@ kkhanddLor谢谢你的评论,我不太理解它是如何关联的,因为我在字符串的中间没有使用通配符,但是我仔细检查了它,并用“<代码> []来对数字进行范围检查”。括号不起作用。所以我做了一个编辑,发布了一个不同的、经过测试的、有效的解决方案。非常感谢。
    dtjr= dtjr.AsEnumerable()
     .Where(r => Regex.IsMatch(r["jounral_name"].ToString(), "^[0-9]+"))
     .CopyToDataTable();