I have a stored procedure:
ALTER PROCEDURE usp_ins_usr_mst
@USR_NAME VARCHAR(max),
@USR_MAIL VARCHAR(max),
@USR_CODE INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS (SELECT * FROM USR_MST WHERE [USR_mail] = @USR_MAIL )
BEGIN
INSERT INTO USR_MST([USR_NAME], USR_MAIL)
VALUES(@USR_NAME, @USR_MAIL);
END
SET @USR_CODE = (SELECT USR_CODE FROM USR_MST WHERE USR_MAIL = @USR_MAIL) ;
select @USR_CODE ;
END
and the C# code as below:
using (SqlConnection cn = new SqlConnection(cm.sqlCnnString))
{
cn.Open();
SqlCommand cmd = new SqlCommand("exec usp_ins_usr_mst @user, @email, @USR_CODE", cn);
cmd.Parameters.AddWithValue("@user", " ");
cmd.Parameters.AddWithValue("@email", HttpContext.Current.Session["uid"].ToString());
cmd.Parameters.Add("@USR_CODE", SqlDbType.Int);
cmd.Parameters["@USR_CODE"].Direction = ParameterDirection.Output;
cmd.CommandTimeout = 15000;
cmd.ExecuteNonQuery();
cn.Close();
HttpContext.Current.Session["USR_CODE"] = cmd.Parameters["@USR_CODE"].Value.ToString();
}
But this cmd.Parameters["@USR_CODE"].Value.ToString()
is returning empty string... I can't figure out where and what I am missing.