使用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();