将未知数量的参数传递给SQL存储过程

时间:2014-05-19 19:05:23

标签: sql vb.net stored-procedures parameters

在通过vb.net执行存储过程时,我有点新手。但是,我想知道是否有人知道如何在我的数据库类中创建一个函数来接受SP名称和一个未知数量的参数及其相关值来对SQL数据库执行。

这将允许执行任何存储过程,以便在我的类中使用相同的函数恢复数据表。

任何帮助都会很棒。我知道有一个SqlParamaterCollection或者我可以使用参数数组吗?

2 个答案:

答案 0 :(得分:0)

您可以通过为可能未传入的参数添加默认值来完成此操作。

W3Schools对此here

有很好的解释

如果在vb.net中没有回答您关于如何执行此操作的问题,有几种方法可以在代码中处理此问题。最简单的是if语句。

if (there is a value to pass in then) then
     command.parameters.addwithvalue("@Parameter", your value)
endif

答案 1 :(得分:0)

这就是我正在做的事情:

Public Sub CallSproc(SprocName As String, Server As String, Database As String, Optional ParameterArray(,) As String = Nothing)

只需创建一个二维数组即可传递给传递参数名称和值的子数据。我使用ubound将它们分开,这将告诉你数组中有多少参数。