我是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()
答案 0 :(得分:3)
您正在呼叫AcceptChanges
。这会将所有行标记为未修改,因此它们永远不会在数据库中更新。删除此电话,你应该很好。