如何过滤一行

时间:2014-07-26 04:18:49

标签: vb.net

我为报告创建了一个视图。我将数据导入报告。在列中,还存在空值。如果我使用vb.net中的过滤器过滤一行,则无法显示行的空值。

例如,列名称是ID,Name,Number,Place。在这里,一些地方号码具有空值,我包括过滤器ID,名称,号码,地点。如果我使用ID过滤,则无法显示数字的空值。

这是我尝试的代码,但没有过滤

IN FORM TextBox1.Text=""

TABLE1BindingSource.Filter = "YOUR FIELDNAME LIKE '" + TextBox1.Text.Equals (String.Empty) + "'") 

预期结果

  

     

你的FIELDNAME

     

值1

     

值2

     

NULL

     

值3

     

NULL

     

NULL

     

VALUE4

1 个答案:

答案 0 :(得分:0)

那个过滤器没有意义。这部分:

TextBox1.Text.Equals(String.Empty)
如果Boolean为空,则

将评估为True,即TextBox,如果不是False则为YOUR FIELDNAME LIKE 'False' 。这意味着您的过滤器最终成为:

Dim columnName As String
Dim fieldValue As String

'...

TABLE1BindingSource.Filter = String.Format("{0} LIKE '{1}%'", columnName, fieldValue)

等。你应该做的事情是这样的:

String.Format

注意那里的一些事情。首先,使用Boolean使这类代码更具可读性。其次,使用用户输入的实际值而不是LIKE来指示该值是否为空。第三,使用通配符是因为在没有通配符的情况下使用LIKE是没有意义的。

还应该注意的是,该代码只适用于文本字段,因为它们是唯一由单引号分隔的代码,也是唯一可以使用{{1}}分隔的代码。如果要对数字字段或其他数据类型进行过滤,则必须编写代码以不同方式创建过滤器。