我必须在我的应用程序中使用三层架构。我必须在我的业务访问层中获取数据访问层返回值,但我无法在业务访问层中获取更改的值。
我的代码在页面后面
protected void btnRegister_Click(object sender, EventArgs e)
{
if (IsPostBack)
{
obj.empReg(txtUserName.Text, txtPassword.Text, isactive, Convert.ToInt32(hdntest.Value));
Response.Redirect("~/Login.aspx");
}
}
我的商家访问层: -
public int empReg(string username, string password, int isactive, int returncode)
{
return obj.EmpRegistration(username, password, isactive, returncode);
}
我的数据访问层: -
public int EmpRegistration(string username, string password, int isactive, int returncode)
{
isactive = 1;
string cs = ConfigurationManager.ConnectionStrings["EmployeeDB"].ConnectionString;
using (SqlConnection connection = new SqlConnection(cs))
{
SqlCommand com = new SqlCommand("sp_RegisterationUser", connection);
com.CommandType = CommandType.StoredProcedure;
string encryptedpassword = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");
SqlParameter paramusername = new SqlParameter("@Username", username);
com.Parameters.Add(paramusername);
SqlParameter parampassword = new SqlParameter("@Password", encryptedpassword);
com.Parameters.Add(parampassword);
SqlParameter paramisactive = new SqlParameter("@isactive", isactive);
com.Parameters.Add(paramisactive);
connection.Open();
returncode = (int)com.ExecuteScalar();
return returncode;
}
}
此处一切正常,但我的业务层中returncode
参数值没有变化。我不知道如何在我的业务访问层中获取returncode
参数。
答案 0 :(得分:0)
你没有在任何地方获取/分配返回值。可能你正在寻找这样的东西,
int Result = obj.empReg(txtUserName.Text, txtPassword.Text, isactive, Convert.ToInt32(hdntest.Value));
答案 1 :(得分:0)
您可能需要进行以下更改,当您不使用时,无需在参数中发送返回码。
代码背后:
protected void btnRegister_Click(object sender, EventArgs e)
{
//...
int iReturnCode = obj.empReg(txtUserName.Text, txtPassword.Text, isactive);
//if(iReturnCode > 0)
Response.Redirect("~/Login.aspx");
}
业务层:
public int empReg(string username, string password, int isactive)
{
return obj.EmpRegistration(username, password, isactive);
}
数据访问层:
public int EmpRegistration(string username, string password, int isactive)
{
try
{
//...
using (SqlConnection connection = new SqlConnection(cs))
{
//...
return Convert.ToInt32(com.ExecuteScalar());
}
}
catch{ return -1; }
}