gpt4 book ai didi

c# - 如何获取存储过程的返回值

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:10 28 4
gpt4 key购买 nike

我有以下存储过程:

ALTER PROCEDURE spLogin
@CAD_WEB_LOGIN_USERNAME varchar(60),
@CAD_WEB_LOGIN_PASSWORD varchar(60),
@Result int output
AS
BEGIN
SELECT
CAD_NUMBER
FROM
CMACADDR
WHERE
CAD_WEB_LOGIN_USERNAME = @CAD_WEB_LOGIN_USERNAME
AND CAD_WEB_LOGIN_PASSWORD = @CAD_WEB_LOGIN_PASSWORD
END

在 C# 中,我想执行此查询并获取返回值。

这是我的代码:

int flag = 0;

con.Open();

SqlCommand cmd3 = new SqlCommand("spLogin", con);
cmd3.Connection = con;
cmd3.CommandType = CommandType.StoredProcedure;

cmd3.Parameters.Add("@CAD_WEB_LOGIN_USERNAME", SqlDbType.VarChar).Value = txtUserName.Text;
cmd3.Parameters.Add("@CAD_WEB_LOGIN_PASSWORD", SqlDbType.VarChar).Value = txtPassword.Text;

SqlParameter parm = new SqlParameter("@Return", SqlDbType.Int);
parm.Direction = ParameterDirection.ReturnValue;
cmd3.Parameters.Add(parm);

flag = cmd3.ExecuteNonQuery();

con.Close();
int id = Convert.ToInt32(parm.Value);

我得到一个错误:

Procedure or function 'spLogin' expects parameter '@Result', which was not supplied.

这段代码有什么逻辑错误?

谢谢

最佳答案

将 ParameterDirection 更改为 Output ,并将参数名称更改为 @Result

SqlParameter parm = new SqlParameter("@Result", SqlDbType.Int);

parm.Direction = ParameterDirection.Output;

cmd3.Parameters.Add(parm);

关于c# - 如何获取存储过程的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20743044/

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