SQL服务器存储过程"过程或函数需要参数,该参数未提供"

本文关键字:参数 quot 函数 存储过程 服务器 过程 SQL | 更新日期: 2023-09-27 18:19:24

我最近在调试cte查询时更改了几个函数(在这里得到了帮助)。我只是改变了几个函数…这让我的查询工作…但是现在,当我的c#客户端代码通过存储过程为我的程序逻辑调用这些函数时,我得到错误"过程或函数'DateTimeOfNextAvailableDataRun'期望参数'@NextDateTime',未提供。"也许多重价值正在回归?

函数的当前形式如下:

ALTER FUNCTION dbo.NextAvailableDataDownloadDateTime()
    RETURNS date
BEGIN
    RETURN (SELECT DATEADD(hour, 18, MIN(TradingDate)) AS TrDate
    FROM tblTradingDays
    WHERE (DATEADD(hour, 18, TradingDate) > dbo.LatestDataDownloadDate()))
END

和调用它的存储过程:

ALTER PROC DateTimeOfNextAvailableDataRun
    @NextDateTime DateTime2 OUTPUT
AS
    SELECT @NextDateTime = dbo.NextAvailableDataDownloadDateTime()

最后是我的客户端代码,它在更改之前运行:

public DateTime DateTimeOfNxtAvailableDataRun()
            {
                DateTime dateTimeOfNxtAvailableDataRun;
                using (SqlCommand cmd = new SqlCommand("DateTimeOfNextAvailableDataRun", this.sqlConnection))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.ExecuteNonQuery();
                    dateTimeOfNxtAvailableDataRun = (DateTime)cmd.ExecuteScalar();
                }
                return dateTimeOfNxtAvailableDataRun;
            }

人吗?再一次,函数工作在我的sql server查询(见我最近的帖子),但现在调用代码不同意..

SQL服务器存储过程"过程或函数需要参数,该参数未提供"

在执行该命令之前,您应该修改using语句的主体并添加一个输出参数。

var outputParameter = new SqlParameter { 
    ParameterName = "@NextDateTime",
    Direction = ParameterDirection.Output
};
cmd.Parameters.Add(outputParameters);
cmd.ExecuteNonQuery();
return (DateTime)outputParameter.Value;
相关文章: