使用C#4.0中的RowFilter在DataView中过滤数字

3

我正在尝试使用RowFilter过滤我的DataView DataSet。

我想在一个整数列上执行类似的语句。

所以大概是这样:

myDataView.RowFilter ="ID LIKE %1%";

这个方法可以用于字符串列,但是使用数字时会出错。

我收到了以下错误信息: 无法对 System.Int32 和 System.Int32 执行“Like”操作。

有没有办法在数字上使用 LIKE 语句呢?

提前感谢你的帮助。

3个回答

4

它对我起作用:

"Convert(DataGridColumnName, 'System.String') LIKE '%" & txtBox.Text & "%' "

2

你必须使用 cast 进行转换。

"Convert(ID, 'System.String') LIKE  %1%"

这个不起作用,我现在收到以下错误提示:表达式包含未定义函数调用 CAST()。 - user1131661
抱歉,但是不行。我现在收到的错误信息是:语法错误:'Mod' 运算符之前缺少操作数。 - user1131661
对于Mod错误,请在其周围添加引号。例如:Convert(ID,'System.String')LIKE'%1%' - Jafin

0

这将获取所请求的特定项。它仅适用于一个项目。

"Convert(DataGridColumnName, 'System.String') LIKE '%" & txtBox.Text & "%' "

例子1:

 DV.RowFilter = "Convert( TicketNo , 'System.String') LIKE  '%" + txtTicketNo.Text + "%'

如果您想检索以特定票号开头的项目,只有输入确切的票号;如果您想要检索所有以该票号开头的项目,则输入该票号。

示例2:

DV.RowFilter = "Convert( TicketNo , 'System.String') LIKE  '" + txtTicketNo.Text + "%' ";

在理论上,第一个例子应该查找整个字符串并搜索匹配项。 我做的那个没有这样做,也许我漏掉了什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接