我在我的应用程序中有以下代码...没有任何声明为整数,所以我不明白或看到问题可能在哪里...它说:
从字符串“9838 Co Rd 47”到“Integer”类型的转换无效。
地址作为一个字符串在整个函数中流动,我觉得它可能会以某种方式在函数调用中被改变的唯一地方......下面是抛出异常的函数。其次是返回地址的函数 ...错误来自 _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
这是我认为某些东西被改为整数值的地方......但这也被声明为字符串......
任何想法????
答案 0 :(得分:6)
这是我认为某些东西会变成整数的地方 值...
不,那不是它。再次阅读错误消息:
从字符串“9838 Co Rd 47”到“Integer”类型的转换无效。
“从字符串转换”意味着您的_address_
变量确实是一个字符串,它的值甚至会显示(“9838 Co Rd 47”)。
它尝试将此字符串转换为整数,因为item.Bill_to
是String
而String.Remove
需要一个整数参数(从中删除字符的位置),但是您传递一个字符串代替。您正在寻找的是String.Replace
,您已在其他地方使用过:
_holder = item.Bill_to.Replace(_address_, "")
答案 1 :(得分:0)
您使用严格的选项吗?也许在你的回报中你应该使用
Return add1 & " Co Rd " & add2
因为add1似乎是9838?