Reputation: 554
Trying to write a IF, ELSE, THEN statement with a few conditions. Below is my vb.net code:
If AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Egan Jones" Or _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Farient Advisors" Or _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Glass Lewis" Or _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Internal Guidelines" Or _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "ISS" Or _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "None" Then
RunSql("insert into institution_has_policy (institution_id,policy_id) values (" & _
InstitutionID & "," & NewPolicyID & ")")
End if
Basically, I am trying to tell the program that if AdvisoryFirmNameTextBox does not equal to any of the names listed in the condition, then go ahead and save the new information into the Institution_has_Policy table.
However, every time I run it, it runs the FIRST IF condition, but skips the other 5.
Can anyone help?
Upvotes: 0
Views: 628
Reputation: 7211
I know this isn't answering your question directly, but you might want to try something cleaner and easier to read:
Dim badNames = New List(Of String) From { "Eagan Jones", "Farient Advisors", "Glass Lewis", "Internal Guidelines", "ISS", "None" }
if (badNames.Contains(AdvisoryFirms.AdvisoryFirmNameTextBox.Text)) then
...
else
...
end if
Upvotes: 3
Reputation: 3299
Try OrElse!
If AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Egan Jones" OrElse _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Farient Advisors" OrElse _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Glass Lewis" OrElse _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "Internal Guidelines" OrElse _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "ISS" OrElse _
AdvisoryFirms.AdvisoryFirmNameTextBox.Text <> "None" Then
RunSql("insert into institution_has_policy (institution_id,policy_id) values (" & _
InstitutionID & "," & NewPolicyID & ")")
Upvotes: 0
Reputation: 360702
You're using OR
, which means the if() test can bail out as soon as ANY of the conditions evaluate to boolean TRUE. e.g.
FALSE or FALSE or FALSE or TRUE or FALSE .... FALSE = TRUE
If your .Text
is NOT equal to "Egan Jones", then that's "true", and the rest of the statement becomes irrelevant and execution will skip straight into the 'true' clause.
You want AND
instead.
TRUE and TRUE and FALSE and TRUE ... = FALSE
Upvotes: 2