Visual Studio:使用多个存储过程创建多值参数

时间:2016-08-12 17:44:41

标签: sql-server stored-procedures parameters visual-studio-2015

我在Visual Studio中工作以构建具有多个存储过程的报告。我的问题是用户需要能够从多值参数中选择,他们需要运行什么存储过程。存储过程适用于需要相同类型数据的不同部门。


-sp_MissingImagesFinance

-sp_MissingImagesHR

-sp_MissingImagesAdmin

我需要为用户创建一个下拉参数,以便能够根据他们的部门选择上述sp中的一个,然后他们将使用他们的特定sp运行报告。有没有办法做到这一点?我没有权限修改任何sp,所以我必须使用我拥有的。

2 个答案:

答案 0 :(得分:1)

我建议创建一个与此类似的驱动程序存储过程。您只需要以这种方式传递选定的选项。另一种选择就像Jonathan Wilcock在他的回答中所说的那样。

create procedure MissingImagesReport
    (@ReportName varchar(50)) 
as
    set nocount on;

    if @ReportName = 'Finance'
        exec sp_MissingImagesFinance

    if @ReportName = 'HR'
        exec sp_MissingImagesHR

    if @ReportName = 'Admin'
        exec sp_MissingImagesAdmin

正如我在评论中提到的,我会敦促你的团队停止使用sp_甚至更好,停止使用前缀。

答案 1 :(得分:0)

假设您使用的是ComboBox,那么您所需要的只是:

using (SqlConnection conn = new SqlConnection("MyConnectionString"))
{
    conn.Open();
    SqlCommand cmd = new SqlCommand(ComboBox1.Text, conn);
    cmd.CommandType = CommandType.StoredProcedure;
    SqlDataReader rdr = cmd.ExecuteReader(); // or whatever you need
    conn.Close();
}