操作我想按照以下方法對我的datagridview使用過濾器:無法執行「喜歡」上System.Decimal和System.String
dt = ExecuteSelect(QueryCondition, IDWindow).Tables(0)
_textFilters = ""
Dim first As Boolean = True
For Each f As field In fields
If f.Value.Length > 0 Then
If Not first Then
_textFilters += " and "
End If
_textFilters &= f.Field & " like '%" & f.Value & "%'"
first = False
End If
Next
dt.DefaultView.RowFilter = _textFilters
我在該行得到了錯誤
dt.DefaultView.RowFilter = _textFilters
無法對System.Decimal和System.String執行'Like'操作
因爲我的數據庫表中有一些小數位字段。
但是如果我使用:
Dim view As DataView = New DataView(grille.DataSource)
_textFilters = ""
Dim first As Boolean = True
For Each f As field In fields
If f.Value.Length > 0 Then
If Not first Then
_textFilters += " and "
End If
Select Case f.Field.GetType.ToString
Case "String"
_textFilters &= f.Field & " like '%" & f.Value & "%'"
Case "DateTime"
Case Else
_textFilters &= f.Field & ">=" & f.Value
End Select
first = False
End If
Next
view.RowFilter = _textFilters
代碼犯規發送一個錯誤,但過濾器不能正常工作。
希望我提前
什麼'f.Field'和'f.Value'的類型? – Neolisk
數字(18,0)所以我猜他們是十進制的 – YosrJ
不需要猜測,只需將鼠標懸停在調試器中的變量上即可。順便說一句,關於你的實現,你可以簡化你的代碼很多,如果你把過濾器存儲在一個字符串列表中,然後執行'dt.DefaultView.RowFilter = String.Join(「和」,yourFilterList)' – Neolisk