0

コンボボックスを使用して DGV を検索し、列の名前と検索クエリのテキスト ボックスを取得しようとしています。以前はこのコードを使用していましたが、うまくいきましたが、今ではEvaluateExceptionこう言われています

System.Double および System.String に対して「Like」操作を実行できません。

これが私がやっていることです:

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'. 

これは、文字列を含むすべての列で機能します。double は文字列ではないため、機能しません。基本的にこれは次のようになります

if (5 == "5") 

もちろんこれは誤りです。

LIKEしたがって、比較を行う前に double を文字列に変換する必要があります。うまくいくかどうかはわかりませんが、うまくいくと思います。

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