2016-08-18 60 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具有很好的效果,您不必将非字符串(如数字)先串起来。 –

相关问题