私は何か奇妙なことに遭遇しました.なぜそれがこのように振る舞っているのか正確にはわかりません. for each ループで、相互参照のためにテーブルに行を追加しています。次のコードを使用します。
For Each cp In pCheckPoints
If cp <> String.Empty Then
Dim insertSQL As New StringBuilder
With insertSQL
.Append("INSERT INTO [CheckpointMessage] ( ")
.Append(" [MessageID] ")
.Append(", [CheckPoint] ")
.Append(" ) VALUES ( ")
.Append(" @MessageID ")
.Append(", @Checkpoint ")
.Append(" ) ")
End With
Using objCommand As New SqlCommand(insertSQL.ToString, MySQLConnection)
With objCommand.Parameters
.AddWithValue("@MessageID", pMessageID)
.AddWithValue("@Checkpoint", cp)
End With
objCommand.ExecuteNonQuery()
objCommand.CommandText = String.Empty
End Using
End If
Next
objCommand.CommandText = String.Empty 行がないと、CommandText は insertSQL を追加していますが、それは私には意味がありません。なぜなら、objCommand の commandText は using ブロックにあるため空であると予想されるからです。