0

您好,我有启用选择行的三个网格视图。用户将从每个网格视图中选择一个项目,然后在选定的索引更改上将值与其他两个网格视图进行比较以查看它们是否相等。在调试时我可以看到它们是相同的,所以我不确定为什么 if 语句总是传递为真。是否可以比较索引?谢谢您的帮助!

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引用是否等于。也就是说,这两个对象是否在物理上指向一个对象的同一个实例——不仅仅是它们具有相同的值。

更改IsNot<>,您应该重新开始行动。

编辑:可能需要转换为正确的类型。例如,如果您的值是数字 ID,则类似于:

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

或者,如果String然后替换String您在Integer上面看到的位置。

于 2013-02-26T20:48:43.590 回答