0

我正在尝试使用组合框搜索我的 DGV,以获取搜索查询的列名称和文本框。我以前用过这段代码,它工作,但现在我得到一个EvaluateException说法

无法对 System.Double 和 System.String 执行“点赞”操作。

这就是我正在做的事情:

Dim dv As DataView = New DataView()
Dim CmSi = cmbSearch.SelectedItem
dv.Table = OutGoingDataSet.outgoingdeliveries
dv.RowFilter = CmSi & " Like '" & txtSearch.Text & "'"
OutgoingDataGridView.DataSource = dv

我该如何解决这个问题?

4

1 回答 1

2

这是你的问题。当您应用过滤器时,请执行以下检查:

Column LIKE 'String'. 

这适用于所有包含字符串的列。双打不起作用,因为它们不是字符串。基本上这就像

if (5 == "5") 

这当然是错误的。

因此,在进行LIKE比较之前,您必须将您的 double 转换为字符串。我不知道它是否会起作用,但我认为它会起作用。

dv.RowFilter = "CONVERT(" & CmSi & ", System.String) LIKE '" & txtSearch.Text & "'"
于 2012-11-07T10:23:25.263 回答