簡體   English   中英

從字符串到Integer類型的轉換無效

[英]Conversion from string to type Integer is not valid

我的應用程序中包含以下代碼...什么都沒有聲明為整數,所以我不明白或看不到問題出在哪里...就是說:

從字符串“ 9838 Co Rd 47”到類型“ Integer”的轉換無效。

該地址以字符串形式流經整個函數,我認為唯一可以更改的地方是在函數調用中...下面是引發異常的函數。 隨后是返回地址的函數...錯誤來自_holder = item.bill_to.remove( address )行

  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

這是我認為某些內容已更改為整數值的地方...但這也都聲明為字符串...

有任何想法嗎????

這是我認為某些內容已更改為整數值的地方...

不,不是這樣。 再次閱讀錯誤消息:

從字符串“ 9838 Co Rd 47”到類型“ Integer”的轉換無效。

“從字符串轉換”表示您的_address_變量確實是一個字符串,並且甚至顯示了它的值(“ 9838 Co Rd 47”)。

它嘗試將此字符串轉換為整數,因為item.Bill_to是一個StringString.Remove需要一個整數參數(從中刪除字符的位置),但是您傳遞了一個字符串。 您正在尋找的是String.Replace ,您已經在其他地方使用了它:

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

您使用的選項嚴格嗎? 也許您應該使用

Return add1 & " Co Rd " & add2

由於add1似乎是9838?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM