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のレコードがあることを考えると、実行速度が遅い
- 私のデータ テーブル アプリケーションの値が 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