我正在尝试根据其ID更新数据表中的行。我插入的数据来自sql。我正在尝试防止表中的重复,如果发生重复,我想增加时间列。 这是我的代码。每当我执行它时,我都会收到此错误:其他信息:索引超出了数组的范围。我认为 select 无法在数据表中找到正确的行。有什么建议?
Dim listID As New List(Of Integer)
Dim dt As New DataTable
dt.Columns.Add("LOID")
dt.Columns.Add(New DataColumn("Correct", GetType(Integer)))
dt.Columns.Add(New DataColumn("Times", GetType(Integer)))
For Each dr As DataRow In ds.Tables(0).Rows
If Not listID.Contains(dr.Item("LOID")) Then
'check if its correct
Dim answerCorrect As Integer
If dr.Item("Correct") = 1 Then
answerCorrect = 1
Else
answerCorrect = 0
End If
'add new row
listID.Add(dr.Item("LOID"))
dt.Rows.Add(dr.Item("LOID"), answerCorrect, 1)
Else
'update table set times plus 1
Dim myRow() As Data.DataRow
Dim rowName As String = "LOID = " & dr.Item("LOID")
myRow = dt.Select(rowName)
Dim timesLO As Integer = myRow(0)("Times")
myRow(0)("Times") = timesLO
'update table depending if the answer is correct
If dr.Item("Correct") = 1 Then
myRow(0)("Correct") = myRow(0)("Correct") + 1
End If
End If
Next
答案 0 :(得分:1)
想出来! :)
我使用以下代码使用动态值
在我的数据表中搜索 myRow = dt.Select("LOID ='" & dr.Item("LOID") & "'")