Хранимая процедура, возвращающая результат - PullRequest
0 голосов
/ 08 января 2020

Я создаю хранимую процедуру для создания списка элементов. Хранимая процедура возвращает результат и возвращаемое значение. В моем приложении, которое я вызываю, хранимые процедуры возвращают возвращаемое значение. Как мне заставить его вернуть результат?

Это моя процедура:

CREATE PROCEDURE [AQB_RMS].[p_SO2EmailOverDue]
AS
    (SELECT
         CONVERT(CHAR(10), CheckDate, 101) AS ZSPDate, 
         Manufacturer, Model, SerialNumber, LocationName
     FROM
         [AQB_RMS].[SO2_Zsp] so
     INNER JOIN
         AQB_MON.[AQB_RMS].[Device] dev ON dev.DeviceID = so.DeviceID
     INNER JOIN
         AQB_MON.[AQB_RMS].[DeviceLocation] dl ON dev.DeviceID = dl.DeviceID
     INNER JOIN
         AQB_MON.[AQB_RMS].[Location] loc ON dl.LocationID = loc.LocationID
     INNER JOIN
         [AQB_RMS].[ManufacturerModel] mm ON dev.ManufacturerModelID = mm.ManufacturerModelID
     INNER JOIN
         [AQB_RMS].[Manufacturer] man ON mm.ManufacturerID = man.ManufacturerID
     WHERE
         CheckDate = (SELECT MAX(CheckDate) FROM [AQB_RMS].[SO2_Zsp]
                      WHERE DeviceID = so.DeviceID) 
         AND dl.EndDate IS NULL 
         AND (SELECT DATEDIFF(day, so.CheckDate, GetDate()) AS DayCount) > 14)
     ORDER BY
         CheckDate

    RETURN 
GO

Ниже приводится результат, когда я выполняю хранимую процедуру в SQL Server 2012

enter image description here

Я использую хранимую процедуру, чтобы предоставить результаты для тела письма. Я использую c#

    static string Body()
    {
        //create a connection to the database
        string ConnString = ConfigurationManager.ConnectionStrings["avdatauser"].ConnectionString;

        StringBuilder sb = new StringBuilder();

        using (SqlConnection con = new SqlConnection(ConnString))
        {
            con.Open();

            SqlCommand cmd = new SqlCommand("AQB_RMS.p_SO2EmailNearDue", con);
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.ExecuteNonQuery();

            sb.Append("<strong>SO2 Analyzer ZSP due</strong>");
            sb.Append("<br>");
            sb.Append("<br>");
            sb.Append("What do you want to say here to show these are the ones with a ZSP that are near due");
            sb.Append("<br>");
            sb.Append("<br>");
            sb.Append(" " + cmd + " ");
            con.Close();
        }

        return sb.ToString();
    }
...