Входная строка не была в правильном формате в веб-приложении с использованием HTML и VB.NET - PullRequest
0 голосов
/ 07 ноября 2019

Я унаследовал этот код на своей работе, и теперь у меня возникли некоторые проблемы. Когда я запускаю этот бит кода, я продолжаю получать ошибки в этой строке кода

p = CInt(v.Substring(1, c - 2))

У меня есть 2 флажка в таблице, первый из них голосует за человека, а второй - за человека, чье имяВы вводите текстовое поле рядом с флажком. Иногда это работает, а иногда нет.

Также не нравится, когда в текстовое поле включается заглавная буква "С".

Public Function CreateVotingDataTable(votes As String) As DataTable
        Dim dt As New DataTable
        Dim c1 As New DataColumn("position", GetType(Integer))
        Dim c2 As New DataColumn("sequence", GetType(Integer))
        Dim c3 As New DataColumn("wivalue", GetType(String))
        dt.Columns.Add(c1)
        dt.Columns.Add(c2)
        dt.Columns.Add(c3)


        Dim votearray = votes.Split("|")
        Dim p As Integer = 0
        Dim s As Integer = 0
        Dim writein As String = String.Empty

        If votes.Length <> 0 Then

            For Each v As String In votearray

                writein = String.Empty
                Dim w As Integer = InStr(v, "#")
                Dim c As Integer = InStr(v, "C")
                If c = 0 Then
                    c = InStr(v, "W")
                End If
                p = CInt(v.Substring(1, c - 2))
                If w > 0 Then
                    s = CInt(v.Substring(c, w - c - 1))
                    writein = v.Substring(w, Len(v) - w)
                Else
                    s = CInt(v.Substring(c, Len(v) - c))
                End If
                Dim r As DataRow = dt.NewRow
                r("position") = p
                r("sequence") = s
                r("wivalue") = writein

                dt.Rows.Add(r)

            Next

        End If

        Return dt


    End Function

Значение, введенное в текстовое поле, должно переноситься на следующую страницуТаблица данных. Иногда это работает, но когда вы возвращаетесь, чтобы изменить значение на другой флажок, это дает мне строку ввода не в правильном формате или аргумент вне диапазона исключений:

длина не может быть меньше нуля.

У кого-нибудь есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...