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

Tsql 与ComboBox一起使用的存储过程列表和参数编号,tsql,c#-4.0,stored-procedures,combobox,Tsql,C# 4.0,Stored Procedures,Combobox,我试图获取所有用户定义的存储过程的列表,以填充组合框。其想法是手动创建一个包含以下列的表: 存储过程名称、输入数、参数1、参数2 用户要单击一个按钮,存储过程从该表中选择所有这些数据,将其加载到数组中,并填充组合框 然后,用户将从组合框中选择一个存储的过程名称,所需参数的数量将与相关名称一起显示。根据我们在SO chat中的讨论: SELECT sprocs.ROUTINE_NAME, parms.PARAMETER_NAME, parms.DATA_TYPE FROM

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

存储过程名称、输入数、参数1、参数2

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


然后,用户将从组合框中选择一个存储的过程名称,所需参数的数量将与相关名称一起显示。

根据我们在SO chat中的讨论:

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


祝你好运。

非常感谢布里奇。