gpt4 book ai didi

c# - 从sql调用过程

转载 作者:行者123 更新时间:2023-11-30 14:32:38 24 4
gpt4 key购买 nike

我正在编码 winform 应用程序,我在我的数据网格中调用过程。我有定义过程参数的方法

 public int Add_Nastavenie(out int typNastav, int nastavID, string hod)
{
ResetParameters();
cmd.CommandText = "add_Nastav";
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter sqlParameter;

var sqlParameterOut = new SqlParameter("@TypNastav", SqlDbType.Int);
sqlParameterOut.Direction = ParameterDirection.Output;


sqlParameter = new SqlParameter("@NastavenieID", SqlDbType.Int);
sqlParameter.Direction = ParameterDirection.Input;
sqlParameter.Value = nastavID;
cmd.Parameters.Add(sqlParameter);

sqlParameter = new SqlParameter("@Hodnota", SqlDbType.NVarChar, 100);
sqlParameter.Direction = ParameterDirection.Input;
sqlParameter.Value = hod;
cmd.Parameters.Add(sqlParameter);

var sqlParameterRet = new SqlParameter("retValue", SqlDbType.Int);
sqlParameterRet.Direction = ParameterDirection.ReturnValue;

cmd.ExecuteNonQuery();
typNastav = (int)sqlParameterOut.Value;
return (int)cmd.Parameters["retvalue"].Value;

}

然后我这样调用过程

 dataConnector.Add_Nastavenie(typNastav,nastavID,hod);

我有一个错误 Argument 1 must be passed with the 'out' keyword

我将其更改为 dataConnector.Add_Nastavenie(out typNastav,nastavID,hod);

错误消失但应用程序不工作,程序什么都不做。

我的 try catch 异常显示:过程或函数“add_Nastav”需要参数“@TypNastav”,但未提供。

有人可以帮忙找到解决办法吗?谢谢 。

最佳答案

您还没有添加存储过程需要的 OUTPUT 参数:

 cmd.Parameters.Add(sqlParameterOut);

关于c# - 从sql调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com