繁体   English   中英

Datagridview数值过滤器-.net

[英]Datagridview Numeric Filter - .net

我正在尝试基于称为“ Op No#”的列来过滤数据网格。 当有人在文本框中输入一个值时,我建立了一个包含过滤器的字符串,然后将其应用于数据网格(我已经忽略了该部分,因为它与我尝试过的其他文本字段一起使用)。

我遇到的问题是,当我在文本框中输入数字并应用过滤器时,它不会返回任何结果,并且我也看不到任何原因。 任何帮助将不胜感激。

    If MainView.TextBox2.Text <> "" Then
        If MainView.FilterCount = 0 Then
            MainView.FilterStr = "'*[Op No#]*' like '%" & MainView.TextBox2.Text & "%'" : MainView.FilterCount = MainView.FilterCount + 1
        Else
            MainView.FilterStr = MainView.FilterStr & "and" & "'*[Op No#]*' like '%" & Convert.ToInt32(MainView.TextBox2.Text) & "%'" : MainView.FilterCount = MainView.FilterCount + 1
        End If
    End If

从我所看到的,您的主过滤器字符串是错误的...对此进行更改

"'*[Op No#]*' like '%" & MainView.TextBox2.Text & "%'" 

为此...仅适用于数字...

 "Column name = " & MainView.TextBox2.Text

另一个例子...

 DataView.RowFilter = "Year = 2008"

您的过滤器语法是错误的,并且您正在对整数执行类似操作……您将其包装在刻度和百分号中……不要这样做。

在您的专栏后面也有一个磅符号,这很好,只需确保像您一样将其包裹在方括号中,我没有显示出来。

字符串值用单引号''引起来。 如果字符串包含单引号',则引号必须加倍。 数字值不包含在任何字符中。 该值应与不变或英语区域性的int.ToString()或float.ToString()方法的结果相同。

这是更多信息... http://www.csharp-examples.net/dataview-rowfilter/

希望这可以帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM