2016-08-18 100 views
-1

我正在讀取temp字符串變量中的ms crm的字符串屬性,然後我將它轉換爲類型整數memcod,以便我需要將它作爲整數類型傳遞給xml,但它聽起來很奇怪我不使用一個字符串或雙重它會拋出以下異常從字符串「<fetch version='1.0' ><entity na」轉換爲類型'雙'無效請幫助exception從字符串「<fetch version ='1.0'><entity na」轉換爲鍵入'Double'無效。「

+0

http://idownvotedyoubecause.com/so/ImageOfAnException –

回答

1

問題是你試圖用一個整數串連在一起一串字符串,memcod的方式,通過使用+操作。

該代碼在運行時產生相同的例外:從字符串「<FOO>」

轉換到類型「雙」無效。

Dim n as Integer = 0 
Dim test As String = "<foo>" + 
     n + 
     "</foo>" 

顯然,VB看到整數那裏,認爲你正在試圖做算術。我想這意味着你想要一個double,因爲它不能冒險猜測你可能想要什麼。例如,這個奇怪的代碼將test設置爲"11"That's a string equal to "11"

Dim n As Integer = 0 
    Dim test As String = "5" + 
     n + 
     "6" 

您可以通過兩種方法解決此問題。

之一,use VB's backwards compatible dedicated string concatenation operator代替+

Dim test As String = "<foo>" & 
     n & 
     "</foo>" 

二,explicitly stringify n

Dim test As String = "<foo>" + 
     n.ToString() + 
     "</foo>" 
+1

甚至更​​方便:'String.Concat( 「」,n,「」)' –

+0

@AlexB。就我個人而言,我發現操作員的連接更愉快,可以編寫和維護。考慮到我的幹部,整天都是「$」 {n}「',但VB當然不會讓我失望。 –

+0

string.concat具有很好的效果,您不必將非字符串(如數字)先串起來。 –

相關問題