必须使用String值声明标量变量@code

时间:2018-06-05 20:07:37

标签: sql-server

我试图通过vb.net获取更新声明。

最初,我的代码如下:

  Dim updateSQL = " update mytable set doc_num = @Code where inv_num = @inv "

    Using connection As New SqlConnection(getConnectionString())
            Using command As New SqlCommand(updateSQL, connection)
            With (command.Parameters)
                    .Add(New SqlParameter("@inv", System.Data.SqlDbType.Int)).Value = inv
                    .Add(New SqlParameter("@Code", System.Data.SqlDbType.NVarChar)).Value = Code        
                rowAffected = command.ExecuteNonQuery()         
            End With
    connection.Close()

我得到一个错误,说必须声明标量变量“@Code”。之后在Stackoverflow上进行了一些搜索(参见Must Declare Scalar Variable),我将其更改为以下内容,并且工作正常。

    Using connection As New SqlConnection(getConnectionString())
            Using command As New SqlCommand(updateSQL, connection)
                connection.Open()

                command.Parameters.Add("@inv", System.Data.SqlDbType.Int)
                command.Parameters("@Inv").Value = CType(inv, Integer)
                command.Parameters.AddWithValue("@Code", Code)

                rowAffected = command.ExecuteNonQuery()
            End Using
            connection.Close()
        End Using

有人请解释为什么第一个案例不起作用?这是否意味着需要使用AddWithValue更新所有字符串值?

0 个答案:

没有答案