【问题标题】:SQL Data Type function parameter when writing function to create a stored procedure parameterSQL数据类型函数参数写函数时创建存储过程参数
【发布时间】:2014-10-12 20:05:42
【问题描述】:

我目前正在编写一个函数,它可以更轻松地以编程方式向存储过程添加参数,但到目前为止,我遇到的唯一障碍是将数据类型作为函数参数添加。代码是:

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 的成员

欢迎提出任何建议。

【问题讨论】:

  • 你使用的sqldatatype错误...
  • 正确的使用方法是什么?
  • 你可以尝试.. .Add(paramName, dataType) 因为你是通过你的函数传递它。
  • 等一下,我给你解决方案……
  • 请查看我为您提供的答案。很容易将参数添加到您的命令中。

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


【解决方案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")

另一个例子 - 不是真的建议... 您也可以省略选择案例BUT,您最好确保您发送的值和数据类型相同!

 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

让我知道这对你有什么影响!

编码愉快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多