Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储过程返回结果_C#_Sql_Sql Server_Stored Procedures - Fatal编程技术网

C# 存储过程返回结果

C# 存储过程返回结果,c#,sql,sql-server,stored-procedures,C#,Sql,Sql Server,Stored Procedures,我正在创建一个存储过程来生成项目列表。存储过程返回结果和返回值。在我的应用程序中,我调用的存储过程返回返回值。如何使其返回结果 这是我的程序: CREATE PROCEDURE [AQB_RMS].[p_SO2EmailOverDue] AS (SELECT CONVERT(CHAR(10), CheckDate, 101) AS ZSPDate, Manufacturer, Model, SerialNumber, LocationName

我正在创建一个存储过程来生成项目列表。存储过程返回结果和返回值。在我的应用程序中,我调用的存储过程返回返回值。如何使其返回结果

这是我的程序:

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中执行存储过程时的返回

我正在使用存储过程为电子邮件正文提供结果。我用的是c#

静态字符串体()
{
//创建到数据库的连接
string ConnString=ConfigurationManager.ConnectionString[“avdatauser”]。ConnectionString;
StringBuilder sb=新的StringBuilder();
使用(SqlConnection con=newsqlconnection(ConnString))
{
con.Open();
SqlCommand cmd=新的SqlCommand(“AQB_RMS.p_SO2EmailNearDue”,con);
cmd.CommandType=CommandType.storedProcess;
cmd.ExecuteNonQuery();
sb.追加(“SO2分析仪ZSP到期日””;
某人追加(“
”); 某人追加(“
”); sb.Append(“你想在这里说些什么来说明这些是即将到期的具有ZSP的产品”); 某人追加(“
”); 某人追加(“
”); sb.追加(“+cmd+”); con.Close(); } 使某人返回字符串(); }
您的应用程序使用什么语言?调用SP并使用结果的代码是什么样子的?过程中的return语句用于返回一个整数,用于指示执行状态。不知道你在这里想做什么。您是否正在尝试将查询结果放入dotnet代码中的对象中?有几十种方法可以做到这一点,互联网上几乎有数百万个例子。我正在尝试使用存储过程返回ZSP Date、Manufacturer、Model和LocationName的结果值。我一直在查看所有的示例,并对这些示例感到困惑。如果您想读取
SELECT
语句所选的数据,则不能调用
.ExecuteNonQuery()
(这是用于
删除、插入、更新
语句)-而是使用
.ExecuteReader
并迭代reader@SeanLange我认为数百万的例子在这里是一个很低的估计。不过,这是一个很好的起点:
    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();
    }