获取存储过程的输出时出错

时间:2010-08-26 09:41:06

标签: c# resharper

我正在尝试将存储过程的输出转换为函数但是我的代码总是收到错误,告诉输出参数未指定。可以帮忙吗?

代码就在这里......

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;
}

1 个答案:

答案 0 :(得分:0)

我认为ReturnValue参数必须是(编辑)命令参数列表中的第一个参数。

另外,请在关闭连接之前尝试查询返回参数的值。

确保存储的proc调用

RETURN (@SomeReturnValue) 

最后,尝试删除“@result”参数名称中的前导空格,以防万一。