与ComboBox一起使用的存储过程列表和参数号

时间:2012-05-17 15:11:10

标签: tsql c#-4.0 stored-procedures combobox

我正在尝试获取用户填充组合框的所有用户定义存储过程的列表。我们的想法是手动创建一个包含以下列的表:

  

SProc名称,输入数量,参数1,参数2 ...

用户想要单击一个按钮,SProc会从该表中选择所有这些数据,将其加载到一个数组中并填充组合框。

用户应从组合框中选择存储的proc名称,并显示所需的参数数量(带有相关名称)。

1 个答案:

答案 0 :(得分:1)

根据我们在SO聊天中的讨论:

SELECT
    sprocs.ROUTINE_NAME,
    parms.PARAMETER_NAME,
    parms.DATA_TYPE
FROM
    INFORMATION_SCHEMA.ROUTINES sprocs
    LEFT OUTER JOIN INFORMATION_SCHEMA.PARAMETERS parms ON parms.SPECIFIC_NAME = sprocs.ROUTINE_NAME
WHERE
    sprocs.ROUTINE_TYPE = 'PROCEDURE'
    --AND PATINDEX('/*<SomeKeyToSearch>*/', sprocs.ROUTINE_DEFINITION) > 0

这将为您提供所有sprocs及其参数和数据类型的列表。请注意,您还需要密切关注数据类型(精度,比例,最大长度等),因为这将用于允许用户调用任意存储过程。一旦在C#应用程序中获得了整个表,就可以根据所需的条件对组/排序/限制进行分组/排序/限制。如果您想确保只从上面的查询返回特定的sprocs,只需使用您可以搜索的某种键向sproc添加顶级注释。

祝你好运。