【问题标题】:Update row in datatable更新数据表中的行
【发布时间】:2016-08-06 14:51:55
【问题描述】:

我正在尝试根据其 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

【问题讨论】:

  • 好的,所以我发现问题出在 select 语句的实际语法上。如果我用 myRow = dt.Select("LOID ='9'") 替换它,它似乎正在工作。现在的问题是如何用 dr.item("LOID") 变量替换 9....

标签: mysql vb.net datatable row


【解决方案1】:

想通了! :)

我使用以下代码使用动态值在我的数据表中进行搜索

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

【讨论】:

    猜你喜欢
    • 2015-01-30
    • 2014-10-08
    • 2013-09-15
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2020-05-08
    相关资源
    最近更新 更多