2011-01-12 20 views
0

我做了一些錯誤的調試試圖獲得我們網站上的誤差降到最低,似乎是被突然出現了很多錯誤錯誤調試 - 從字符串轉換爲雙

從字符串「」轉換爲「Double」類型無效。

我無法複製這個問題,但我可以看到它正在發生。

我一直在尋找通過在頁面中的一個代碼,過這個

Dim varWeek As String 

If varWeek < 10 Then 
    'Do something' 
End If 

漫步難道這會導致因爲它是想看看是否一個String小於10這是一個問題Integer

正如我之前所說,因爲我無法在第一個地方看到這個錯誤,所以將其更改爲Integer不會改變我係統上的任何內容。

謝謝。

回答

3

我看不出任何理由,爲什麼這種轉換應該導致一倍。 很可能你有一些操作,雙倍應該適合。

在一般情況下,我會嘗試操作之前使用的轉換,例如:

If Convert.ToInt32(varWeek) < 10 Then 

等。

0

如果您的消息是異常的消息,那麼這是一個轉換失敗。 如果您將一個空字符串(您的「」)傳遞給Convert.ToDouble,Double.Parse(在C#中),它將啓動FormatException。

您可以使用Double.TryParse來避免這種情況。

1

我想你自己回答了。

嘗試將該字符串變量轉換爲整數。例如使用:

Dim varWeek As String 

If Val(varWeek) < 10 Then 
'Do something 
End If 

我不確定您是否已經嘗試過,但您是否使用了Try Catch語句?這樣你就可以看到錯誤來自哪裏。

調試上的好友;)

+0

我真的不知道何時使用嘗試catch語句 - 我使用它們時,我主要運行查詢的。 – 2011-01-12 10:46:11

1

正在造成的錯誤,因爲你的字符串爲空「」。

在將字符串與數字進行比較之前,您應該對字符串進行某種錯誤檢查。

你可以做這樣的事情:

Dim varWeek As String 
If IsNumeric(varWeek) 
    If varWeek < 10 Then 
     Do something 
    End If 
Else 
    Handle your error here, probably feed back to the user that their input is invalid 
End If