在 vb.net 应用程序中运行的 sql 更新查询中,我将某些列的数据更新到 sql 数据表,这是代码
dim cnn = New SqlConnection(connetionString)
Dim q As New SqlCommand("UPDATE products SET rank=@rank,rankchange=@rankchange,PD=@PD,PDP=@PDP,TPD=@TPD where catalogid=@catalogid",cnn)
cnn.Open()
For i = 0 To mainDatatable.Rows.Count - 1
q.Parameters.Add(New SqlParameter("@rank", mainDatatable.Rows(i)("rank")))
q.Parameters.Add(New SqlParameter("@rankchange", mainDatatable.Rows(i)("rankchange")))
q.Parameters.Add(New SqlParameter("@PD", mainDatatable.Rows(i)("PD")))
q.Parameters.Add(New SqlParameter("@PDP", mainDatatable.Rows(i)("PDP")))
q.Parameters.Add(New SqlParameter("@TPD", mainDatatable.Rows(i)("TPD")))
q.ExecuteNonQuery()
q.Parameters.Clear()
Next
我有 2 个问题
- 考虑到该表有大约 60k 条记录,它的运行速度很慢
- 如果我的数据表应用程序中的 a 值为 NULL,那么我想将其更新为 NULL,最好的方法是什么?我尝试了类似以下的方法
If IsDBNull(mainDatatable.Rows(i)("rank")) Then q.Parameters.Add(New SqlParameter("@rank", "NULL")) Else q.Parameters.Add(New SqlParameter("@rank", mainDatatable.Rows(i)("rank"))) End If