SQL Data Type函数参数在写入函数时创建存储过程参数

时间:2014-10-12 20:05:43

标签: sql asp.net vb.net ado.net

我正在编写一个函数,可以更容易地以编程方式向存储过程添加参数,但到目前为止,我唯一的绊脚石是将数据类型作为函数参数添加。代码是:

Public Shared Function spParamAdd(cmd As SqlCommand, paramName As String, dataType As SqlDbType, value As String)
    Dim command = cmd.Parameters.Add(paramName, SqlDbType.dataType).Value = value
    Return command
End Function

我试图从中得到的代码是:

cmd.Parameters.Add("@USERID", SqlDbType.Int).Value = 1

最后,我得到的错误是:

  

dataType不是System.Data.SqlDbType

的成员

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

很抱歉,花了一些时间,这是一个很棒的解决方案...... 此代码经过试用和测试 如果您正在寻找添加它们的方法,这将轻松地将参数添加到您的命令对象...

将参数添加到命令对象的方法

如下所示,我们只需要命令对象(ByRef),因此我们可以直接使用它,您的参数名称本身,数据类型以及最终的值。还有一个选择案例,因为我们需要确切知道我们正在处理的数据类型,以便我们可以将我们的值转换为正确的类型......

 Public Shared Sub spParamAdd(ByRef cmd As SqlCommand, ByVal paramName As String, ByVal dataType As SqlDbType, ByVal value As Object)
    'Need to make sure we have the correct datatype, add more as needed!
    Select Case dataType
        Case SqlDbType.VarChar
            cmd.Parameters.AddWithValue(paramName, CStr(value)).DbType = dataType
        Case SqlDbType.Int
            cmd.Parameters.AddWithValue(paramName, CInt(value)).DbType = dataType
    End Select

End Sub

示例用法

 Dim cmd As New SqlCommand
 spParamAdd(cmd, "@Customer_ID", SqlDbType.Int, 12)
 spParamAdd(cmd, "@Last_Name", SqlDbType.VarChar, "Dickins")

另一个例子 - 没有真正建议...... 你也可以省略选择案例你最好确保你发送的价值和数据类型是一样的!

 Public Shared Sub spParamAdd(ByRef cmd As SqlCommand, ByVal paramName As String, ByVal dataType As SqlDbType, ByVal value As Object)
    cmd.Parameters.AddWithValue(paramName, value).DbType = dataType
End Sub

让我知道这对你有用!

快乐的编码!