我正在编写一个函数,可以更容易地以编程方式向存储过程添加参数,但到目前为止,我唯一的绊脚石是将数据类型作为函数参数添加。代码是:
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
的成员
欢迎任何建议。
答案 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
让我知道这对你有用!
快乐的编码!