2016-04-14 14 views
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 
+0

を使用して、私のDataTableの検索するには、次のコードを使用するので、私はこの問題は、SELECT文の実際の構文であることを考え出しました。私はそれをmyRow = dt.Select( "LOID = '9'")と置き換えると動作しているようです。質問は今私が9をdr.item( "LOID")変数に置き換えることができる方法です。 – user3194603

答えて

0

はそれを考え出しました! :)

私は、[OK]を動的な値

myRow = dt.Select("LOID ='" & dr.Item("LOID") & "'") 
関連する問題