添加相同的参数两次并执行查询

时间:2015-10-07 17:25:10

标签: sql vb.net

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个参数。

1 个答案:

答案 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();