2014-11-22 49 views
-2

我試圖創建一個錯誤處理程序,但出現錯誤。用我有限的英語,我不知道如何解釋問題的細節。我希望有可能在你看到我的代碼之後,你就會明白。在VB.net中出現從字符串到長整型轉換的錯誤

我看了這個,[Conversion from string "" to long is not valid並認爲麻煩可能與「&」和「或」,但它可能是不同的。

我的代碼如下。請注意,Date1.text,Date2.text等是datetimepicker

Dim No1, No2, No3 No4 As String 
    No1 = Date1.Text 
    No2 = Date2.Text 
    No3 = Date3.Text 
    No4 = Date4.Text 
Select Case CmbNumber.Text 
    Case "1 (ONE)" 
     No2 = "-" 
     No3 = "-" 
     No4 = "-" 
    Case "2 (TWO)" 
     No1 = "-" 
     No3 = "-" 
     No4 = "-" 
    Case "3 (THREE)" 
     No1 = "-" 
     No2 = "-" 
     No4 = "-" 
    Case "4 (FOUR)" 
     No1 = "-" 
     No2 = "-" 
     No3 = "-" 
End Select 
    If CmbNumber.Text = "4 (FOUR)" Then 
     If No1 Or No2 Or No3 = No4 Then 'ERROR Conversion From String to Long 
      MsgBox("Not allowed the same date", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "ERROR") 
      Exit Sub 
     End If 
    End If 
+0

@sjoy雖然我覺得你的編輯是非常有用的,我想你應該已經留下了*註釋*有關「陷阱「作爲」錯誤處理程序「而不是在問題中改變它,並且完成編輯,你應該對代碼進行格式化。 (我試圖撤消編輯拒絕,但是我不能。) – 2014-11-22 22:36:46

+0

@AndrewMorton有助於未來編輯的信息。 (分鐘後)現在不太遵循。它看起來像我的編輯應用。 – sjoy 2014-11-23 03:47:42

+0

@AndrewMorton Nevermind。我發現了批准,現在得到它:) – sjoy 2014-11-23 11:06:45

回答

1

你需要知道什麼是operator在計算機編程和Operator Precedence in Visual Basic

由此,您可以確定計算機將No1 Or No2 Or No3 = No4視爲No1 Or No2 Or (No3 = No4)(括號中的項目,即首先對()進行評估),這不是您想要的。

取而代之的是,你想要No1 = No4 Or No2 = No4 Or No3 = No4

現在,當你使用Or它評估每一個條件,即使它不是數學上的必要條件。引入了一個新的運營商OrElse,該運營商只進行所需的評估,因此您的代碼使用No1 = No4 OrElse No2 = No4 OrElse No3 = No4時效率更高。

順便說一句,你可以只設定值,必要時縮短代碼:

Dim No1 As String = "-" 
Dim No2 As String = "-" 
Dim No3 As String = "-" 
Dim No4 As String = "-" 
Select Case CmbNumber.Text 
    Case "1 (ONE)" 
     No1 = Date1.Text 
    Case "2 (TWO)" 
     No2 = Date2.Text 
    Case "3 (THREE)" 
     No3 = Date3.Text 
    Case "4 (FOUR)" 
     No4 = Date4.Text 
End Select 
+0

其實我已經嘗試過使用OrElse算子,但我沒有成功,但在正確的手它可以完成..這是我正在尋找..這是工作..謝謝.. – CrazyThink 2014-11-22 22:14:21

0

表達If No1 Or No2 Or No3 = No4假定No1No2Boolean類型。您不能將Or運算符應用於非布爾值的東西。

+0

所以沒有答案來回我的問題..或者你願意給另一種方式.. – CrazyThink 2014-11-22 21:20:07

相關問題