2016-04-14 22 views
0

Veritabanımdaki kimliğine bağlı olarak bir satırı güncellemeye çalışıyorum. Eklediğim veriler sql. Ben tablodaki çiftleri engellemeye çalışıyorum ve yinelenen bir zaman oluşumu zaman sütununda artırmak istiyorum. Bu benim kodum. Her çalıştırdığımda bu hatayı alıyorum: Ek bilgi: Dizin, dizinin sınırları dışındaydı. Bana veri çubuğunda doğru satırı bulamıyor seçin. Baska öneri?Veritabanındaki güncelleştirme satırı

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

Tamam dinamik değeri kullanarak benim datatable içinde arama yapmak için aşağıdaki kodu kullanılır, bu yüzden sorun select deyimi gerçek sözdizimi olduğunu anladım. eğer myRow = dt.Select ile değiştirirsem ("LOID = '9'") çalışıyor gibi görünüyor. Şimdi soru, 9'u dr.item ("LOID") değişkeniyle nasıl değiştirebilirim. – user3194603

cevap

0

bunu çözdü! :)

Ben

myRow = dt.Select("LOID ='" & dr.Item("LOID") & "'") 
İlgili konular