Я унаследовал этот код на своей работе, и теперь у меня возникли некоторые проблемы. Когда я запускаю этот бит кода, я продолжаю получать ошибки в этой строке кода
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
Значение, введенное в текстовое поле, должно переноситься на следующую страницуТаблица данных. Иногда это работает, но когда вы возвращаетесь, чтобы изменить значение на другой флажок, это дает мне строку ввода не в правильном формате или аргумент вне диапазона исключений:
длина не может быть меньше нуля.
У кого-нибудь есть идеи?