C# 获取存储过程输出时出错
我试图将存储过程的输出放入函数中,但在代码中,我总是收到一个错误,告诉我没有指定输出参数。你能帮忙吗 代码在这里C# 获取存储过程输出时出错,c#,resharper,C#,Resharper,我试图将存储过程的输出放入函数中,但在代码中,我总是收到一个错误,告诉我没有指定输出参数。你能帮忙吗 代码在这里 public int UserAuthentication(String username, String password) { SqlConnection conn = new SqlConnection("Data Source=...\\..; Initial Catalog=CUSTOMER360;User ID=sa;password=******");
public int UserAuthentication(String username, String password)
{
SqlConnection conn = new SqlConnection("Data Source=...\\..; Initial Catalog=CUSTOMER360;User ID=sa;password=******");
SqlCommand command = new SqlCommand("sp_Campaign_UserAuthentication", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@login_id", SqlDbType.VarChar, 50, "loginid"));
command.Parameters.Add(new SqlParameter("@password",
SqlDbType.VarChar,50,
"password"));
SqlParameter ret = command.Parameters.Add(" @result", SqlDbType.Int);
ret.Direction = ParameterDirection.ReturnValue;
command.Parameters["@login_id"].Value = username;
command.Parameters["@password"].Value = password;
conn.Open();
command.ExecuteNonQuery();
conn.Close();
return (int)ret.Value;
}
我认为ReturnValue参数必须是edit命令参数列表中的第一个参数 此外,请在关闭连接之前尝试查询返回参数的值 确保存储的进程调用
RETURN (@SomeReturnValue)
最后,尝试删除@result参数名称中的前导空格,以防万一。我假设您发布的sa用户密码是一个伪字符串:-@结果是返回值,它在参数列表中。我还尝试在关闭连接之前获取返回值,但结果相同………您的代码将该参数作为第三个参数添加到命令的参数列表中。将其作为第一个移动。是否也可以发布存储过程的标题?只需进程名和参数列表即可。我想知道您是否混淆了输出和返回值参数类型。我发现解决方案是存储过程,所以不是返回类型ParameterDirection.Output;必须使用