如何从存储过程中返回表的多行并使用ADO.NET在C#中访问这些值?

时间:2019-07-03 05:51:16

标签: c# sql-server ado.net

我想从存储过程中返回一个表,例如内联表值返回表,但是从存储过程中返回的不是函数,那么我们可以通过什么方式实现这一目标呢?

我正在尝试使用存储过程,但是它不起作用-实际上此代码是错误的,但是请提供一些适当的解决方案。

ALTER PROCEDURE spForFilterUpdateSorting 
    @action NVARCHAR(MAX),
    @tableName NVARCHAR(MAX),
    @P1_string NVARCHAR(MAX),
    @ReturnOutString NVARCHAR(MAX) OUTPUT
AS
BEGIN
    IF @action = 'SEARCH'
        IF @tableName = 'Student_Details'
            IF EXISTS(SELECT [Name] FROM Student_Details 
                      WHERE [Name] LIKE CONCAT(@P1_string, '%'))    
                SELECT
                    @ReturnOutString = (SELECT [Name] FROM Student_Details 
                                        WHERE [Name] LIKE CONCAT(@P1_string, '%')) // I want to return selected value
            ELSE
                SELECT @ReturnOutString = 'null'
END

1 个答案:

答案 0 :(得分:0)

    IF @tableName='Student_Details'
            select [Name] from Student_Details where [Name] like CONCAT(@P1_string,'%')
        ELSE
            select null as Name
    END

此方法将返回表格,如果对您不起作用,请告诉我。