0

こんにちは、選択行が有効になっている 3 つのグリッド ビューがあります。ユーザーは各グリッド ビューからアイテムを選択し、選択したインデックスの変更時に、値が他の 2 つのグリッド ビューと比較されて等しいかどうかが確認されます。デバッグ中に、それらが同じであることがわかるので、if ステートメントが常に true として渡される理由がわかりません。おそらくインデックスを比較していますか?助けてくれてありがとう!

If gvCustomer.SelectedValue IsNot gvSiteAddress.SelectedValue Then
            dataSourceGVCust.SelectCommand = ConfigurationManager.AppSettings("SelectCustomer") & " WHERE CUST_NO LIKE '%" & gvSiteAddress.SelectedValue.ToString & "%' ORDER BY CUST_NAME"
        End If
If gvJobNumber.SelectedValue IsNot gvSiteAddress.SelectedValue Then
     dataSourceGVJobNumber.SelectCommand = ConfigurationManager.AppSettings("SelectJobNumber") & " WHERE CUST_NO LIKE '%" & gvSiteAddress.SelectedValue.ToString & "%' ORDER BY JOB_NO"
End If
4

1 に答える 1

0

IsNot演算子を悪用しています。http://msdn.microsoft.com/en-us/library/t3bat82c.aspxを参照してください。

IsNot参照が等しいかどうか。つまり、2 つのオブジェクトが物理的にオブジェクトの同じインスタンスを指しているということです。単に同じ値を持っているだけではありません。

に変更IsNotする<>と、アクションに戻るはずです。

編集: 適切な型へのキャストが必要になる可能性があります。たとえば、値が数値 ID の場合、次のようになります。

If CType(gvJobNumber.SelectedValue, Integer) <> CType(gvSiteAddress.SelectedValue, Integer) Then

または、上記の場所Stringに置き換えStringますInteger

于 2013-02-26T20:48:43.590 に答える