0
IDに応じてデータテーブルの行を更新しようとしています。私が挿入しているデータはSQLからです。私はテーブル内の重複を防止しようとしていると重複が発生した場合、私は時間の列を増やしたいです。 これは私のコードです。私はそれを実行するたびに私はこのエラーが発生します:追加情報:インデックスは、配列の境界外だった。選択は、データテーブル内の正しい行を見つけることができません。助言がありますか?データテーブルの行を更新する
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
を使用して、私のDataTableの検索するには、次のコードを使用するので、私はこの問題は、SELECT文の実際の構文であることを考え出しました。私はそれをmyRow = dt.Select( "LOID = '9'")と置き換えると動作しているようです。質問は今私が9をdr.item( "LOID")変数に置き換えることができる方法です。 – user3194603