VB.NET数据集更新

时间:2009-10-07 22:20:41

标签: database vb.net dataset dataadapter

我是vb.net的新手,并且在使用数据集上的For ... Next构造更新表中的字段时遇到了相当大的挑战。下面的示例代码 - 任何人都可以告诉我我缺少什么?我知道这个特定的例子可以用一个简单的SQL更新语句来完成,但实际使用这个代码将需要单步执行数据集中的每个记录。以下示例只是一个简单的例子让我让程序失效。请注意,此操作没有异常,但只是不更改表中的数据。

帮助! :)


    Dim objConn As SqlConnection = New SqlConnection("Data Source=DALLAS\;Initial Catalog=Adaptive;Integrated Security=True")

    Dim selectCMD As SqlCommand = New SqlCommand("SELECT * from dwbprocref", objConn)
    selectCMD.CommandTimeout = 30

    Dim custDA As SqlDataAdapter = New SqlDataAdapter
    custDA.SelectCommand = selectCMD

    Dim custCB As SqlCommandBuilder = New SqlCommandBuilder(custDA)
    custCB.QuotePrefix = "["
    custCB.QuoteSuffix = "]"


    Dim dRow As DataRow
    Dim dTable As DataTable

    objConn.Open()

    Dim custDS As DataSet = New DataSet
    custDA.Fill(custDS, "dwbprocref")

    For Each dRow In custDS.Tables(0).Rows
        If dRow.Item("pr_format") = "MDV" Then
            dRow.Item("pr_tester") = "X"
        End If
        custDS.AcceptChanges()
    Next
    custDA.Update(custDS, "dwbprocref")

    objConn.Close()

1 个答案:

答案 0 :(得分:3)

您正在呼叫AcceptChanges。这会将所有行标记为未修改,因此它们永远不会在数据库中更新。删除此电话,你应该很好。