2011-10-20 117 views
0

我在我的应用程序中有下面的代码...没有声明为整数,所以我不明白或看到问题可能在哪里......它说:从字符串转换为Integer类型无效

从字符串“9838联合路47”

转换到类型“整数”是无效的。

地址流经整个函数作为字符串我认为它可以得到改变在某种程度上是在函数调用的唯一的地方......下面是抛出异常的功能。接着,它返回地址功能...误差来源于 _holder = item.bill_to.remove(地址)线

For Each item In _QuickImport 
      Dim BusinessName As String = Nothing 
      Dim CustomerName As String = " " 
      _Id = item.id 
      If Not String.IsNullOrEmpty(item.Customer) Then 
       Dim _holder As String = String.Empty 
       Dim _contact_ As String = item.Contact 
       Dim _address_ As String = String.Empty 

       If item.Bill_to.Contains(_contact_) Then 
        _holder = item.Bill_to.Replace(_contact_, " ") 
       End If 
       If Not String.IsNullOrEmpty(_holder) Then 
        If item.Bill_to.Contains("Co Rd") Then 
         _address_ = ExtractAddressWithCoRd(_holder) 
        End If 
       Else 
        If item.Bill_to.Contains("Co Rd") Then 
         _address_ = ExtractAddressWithCoRd(item.Bill_to) 
        End If 
       End If 

       If Not String.IsNullOrWhiteSpace(item.Customer) Then 
        If item.Customer.Contains(":") Then 
         BusinessName = item.Customer.Split(":")(0) 
         CustomerName = item.Customer.Split(":")(1) 
        Else 
         CustomerName = item.Customer 
        End If 
       End If 


       If Not String.IsNullOrEmpty(BusinessName) Then 
        If item.Bill_to.Contains(BusinessName) Then 
         _holder = item.Bill_to.Replace(BusinessName, " ") 
        End If 
       End If 



       Dim _Id_ As Integer = _Id 

       If Not String.IsNullOrWhiteSpace(_holder) Then 
        Dim _check As Boolean = True 
        _check = ValidZip(_holder) 
        If _check = True Then 
         If Not String.IsNullOrEmpty(_address_) Then 
          _holder = Convert.ToString(_holder) 
          _address_ = Convert.ToString(_address_) 
          _holder = item.Bill_to.Remove(_address_) 
         End If 
         parseAddress(_holder, _Id) 

另一个功能是:

Private Function ExtractAddressWithCoRd(ByVal input As String) As String 
     Dim add1 As String = String.Empty 
     Dim add2 As String = String.Empty 
     Dim parts() As String = input.Split(" "c) 
     For i As Integer = 0 To parts.Length - 1 
      If parts(i) = "Co" AndAlso i > 0 Then 
       add1 = parts(i - 1) 
      ElseIf parts(i) = "Rd" AndAlso i < parts.Length - 1 Then 
       add2 = parts(i + 1) 
      End If 
     Next 

     Return add1 + " Co Rd " + add2 
    End Function 

这是我想的东西是越来越变为一个整数值......但这一切声明为字符串,以及...

任何想法????

回答

6

这是我想的东西是越来越改为整数 值...

不,这不是它。再次读取错误消息:从字符串“9838联合路47”

转换到类型“整数”是无效的。

“从字符串转换”意味着您的_address_变量确实是一个字符串,它的值甚至会显示(“9838 Co Rd 47”)。

它试图将此字符串转换为整数,因为item.Bill_toStringString.Remove需要一个整数参数(从中删除字符的位置),但是您要传递一个字符串。什么你要找的是String.Replace,你已在别处使用:

_holder = item.Bill_to.Replace(_address_, "") 
+0

好东西...我想这可能是它是什么,但它以为我已经使用删除其他地方一样,....谢谢多的帮助... – Skindeep2366

0

您是否使用选项严格?也许在你的回报你应该使用

Return add1 & " Co Rd " & add2 

由于add1似乎是9838?

相关问题