ALTER PROCEDURE sp_userLogin
@UserName  nvarchar(50),
@PassWord  nvarchar(50),
@UserID    int OUTPUT
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
SELECT @UserID=UserID FROM UserInfo
WHERE (UserName = @UserName) AND (PassWord = @PassWord)
if (@@Rowcount<1)
SELECT @UserID=0

Return @UserID源码
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CnMobConntent"].ConnectionString);
        SqlCommand cmd = new SqlCommand("sp_userLogin", conn);
        cmd.CommandType = CommandType.StoredProcedure;        SqlParameter username = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
        username.Value = UserName.Text;
        cmd.Parameters.Add(username);        SqlParameter password = new SqlParameter("@PassWord", SqlDbType.NVarChar, 50);
        password.Value = PassWord.Text;
        cmd.Parameters.Add(password);        SqlParameter userid = new SqlParameter("@UserID", SqlDbType.NVarChar,10);
        userid.Direction = ParameterDirection.ReturnValue;
        cmd.Parameters.Add(userid);        conn.Open();
        cmd.ExecuteNonQuery();        int UserID = Convert.ToInt32(userid);        if (UserID =0)
        {
        }
        else
        {
            HttpContext.Current.Response.Redirect("default.aspx");
        }提示错误
程 'sp_userLogin' 需要参数 '@UserID',但未提供该参数。请问如何解决,如保获取@UserID的值

解决方案 »

  1.   

    userid.Direction = ParameterDirection.ReturnValue;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~userid.Direction = ParameterDirection.Output;
      

  2.   

    int UserID = Convert.ToInt32(userid);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~int UserID = Convert.ToInt32(userid.Value);
      

  3.   

    userid.Direction = ParameterDirection.ReturnValue;  if (UserID =0)
            {
            }
    =====================================userid.Direction = ParameterDirection.Output;  if (UserID ==0)
            {
            }