Dim b as integer = 1
cmd = New SqlCommand
With cmd
.Connection = connecti
.CommandTimeout = 0
.CommandText = "INSERT INTO HEZDDD(ID,Number,Dates) VALUES (@Id,@Number,@Dates)"
With .Parameters
.AddWithValue("@ID", NextId())
.AddWithValue("@Dates", date.now)
If b = 1 Then
.AddWithValue("@Number", 1)
cmd.ExecuteNonQuery()
End if
If b>10 Then
.AddWithValue("@Number", 2)
cmd.ExecuteNonQuery()
End if
End With
End With
期待使用不同的参数执行两次相同的查询。这个简单查询的输出应该是两行。
这是一个简单的例子,我不想整个代码包含大约25个参数。
答案 0 :(得分:2)
首先使用Parameters.Add(string parameterName, SqlDbType sqlDbType)
添加没有值的参数。
cmd.Parameters.Add("@ID", SqlDbType.Int);
在执行命令之前,请提供参数的值:
cmd.Parameters["@ID"].Value = NextId();
实际上,即使您想立即设置值,使用Parameters.Add(string parameterName, SqlDbType sqlDbType)
总是更好。如果使用AddWithValue
,则必须从值推断参数的db类型。它通常运作良好,但您可能会有一些惊喜。并且因为Add
返回添加的参数,您可以在同一行中分配值:
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = NextId();