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查询(见我最近的帖子),但现在调用代码不同意..
在执行该命令之前,您应该修改using
语句的主体并添加一个输出参数。
var outputParameter = new SqlParameter {
ParameterName = "@NextDateTime",
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(outputParameters);
cmd.ExecuteNonQuery();
return (DateTime)outputParameter.Value;