一切!我想先说我在这里新人! :) 我在编码方面也很陌生,所以要温柔地对待我
尝试将过滤器应用于我的DataTable时,我收到了InvalidCastException错误。问题是,我试图应用2个过滤器,其中一个是有条件的。 这就是我所拥有的:
If cbValue1.Text <> "" Then
dv.RowFilter = "Value1 " + cbValue1.Text + " " + CStr(nudValue1.Value) AndAlso If(CheckBox1.Checked = True, " AND [Value2] = 'Mon'", "")
End If
我得到的错误是,&#34;从字符串&#34转换;值1&lt; = 1500&#34;输入&#39;布尔&#39;无效。&#34;
如果我只有这一部分它可以正常工作:
If cbValue1.Text <> "" Then
dv.RowFilter = "Value1 " + cbValue1.Text + " " + CStr(nudValue1.Value)
End If
有人能告诉我什么是错的吗?
答案 0 :(得分:0)
您错误地使用了AndAlso Operator。它会将此视为布尔表达式:
"Value1 " + cbValue1.Text + " " + CStr(nudValue1.Value)
尝试使用多行代码或以不同方式构建RowFilter,如下所示:
If cbValue1.Text <> "" Then
Dim strRowFilterExpression As String = "Value1 " & cbValue1.Text & " " & CStr(nudValue1.Value)
If CheckBox1.Checked Then
strRowFilterExpression += " AND [Value2] = 'Mon'"
End If
dv.RowFilter = strRowFilterExpression
End If