或者在VB.NET中的If then条件中使用Else



我想操作以下条件来检查值是41还是42,然后我想退出条件,除了41或42之外的任何值我都想执行SendEmailCPK(Msg)。

以下是我的代码,但它不工作

If (rs.Fields("machine").Value <> "42" OrElse rs.Fields("machine").Value <> "41") Then 
    SendEmailCPK(Msg)
    EventLog1.WriteEntry(EventLog1.Source, "Coil " & rs.Fields("Lot").Value & " " & rs.Fields("Coil").Value & " Cpk is Out of Spec " & rs.Fields("cpk").Value)
End If

您的意思是,如果值不同于42和41?

If (rs.Fields("machine").Value <> "42" AndAlso rs.Fields("machine").Value <> "41") Then 
    SendEmailCPK(Msg)
    EventLog1.WriteEntry(EventLog1.Source, "Coil " & rs.Fields("Lot").Value & " " & rs.Fields("Coil").Value & " Cpk is Out of Spec " & rs.Fields("cpk").Value)
End If

如果rs.Fields("machine")的值总是数字,则可以进行

Dim machine as Int = CInt(rs.Fields("machine").Value)
If Not (machine >= 41 AndAlso machine <= 42) Then
   SendEmailCPK(Msg)
   EventLog1.WriteEntry(EventLog1.Source, "Coil " & rs.Fields("Lot").Value & " " & rs.Fields("Coil").Value & " Cpk is Out of Spec " & rs.Fields("cpk").Value)
End If

正如马特在下面提到的,一个更整洁的解决方案使代码更容易理解是…

If (machine < 41 AndAlso machine > 42) Then....

最新更新