Here is my SQL Server stored procedure to verify user credentials.
ALTER procedure [dbo].[ValidateUserCredentials]
@Username varchar(50),
@Password varchar(50),
@result varchar(50) out
AS
BEGIN
IF EXISTS(select Username, Password
from Users
where Username = @Username
AND Password = @Password)
BEGIN
set @result = 1
END
ELSE
BEGIN
set @result = 0
END
END
Here is my method in reuse class.
public bool executeInsertprocedure(string spName, SqlParameter[] sqlParameters, out string message)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = spName;
cmd.Parameters.AddRange(sqlParameters);
conn.Open();
try
{
cmd.ExecuteNonQuery();
message = sqlParameters[sqlParameters.Length - 1].Value.ToString();
return true;
}
catch
{
message = "Something is wrong!";
return false;
}
}
Here I am calling it in my BLL.
public void verifyUserCredentials(string userName, string password,string message,out string sp_message)
{
SqlParameter[] param = new SqlParameter[3];
param[0] = new SqlParameter("@UserName", SqlDbType.VarChar);
param[0].Value = userName;
param[1] = new SqlParameter("@Password", SqlDbType.VarChar);
param[1].Value = password;
param[2] = new SqlParameter("@result", SqlDbType.VarChar);
param[2].Direction = ParameterDirection.Output;
//param[2].Value = sp_message;
objRuse = new Reuse();
objRuse.executeInsertprocedure("ValidateUserCredentials", param, ??);
}
and here is my login page.
protected void btnSignin_Click(object sender, EventArgs e)
{
objBll = new bll();
objBll.verifyUserCredentials(txtSignInUsername.Text,txtSignInPassword.Text, ??);
if(?? == true)
{
Session["Username"]=txtSignInUsername;
Response.Redirect("Default.aspx");
}
else
{
Response.Redirect("Login.aspx");
}
}
What I should put in ?? places in my code. How do I get the returned value of stored procedure.