public class UserInfoDAL{
public static UserInfo Select(string name,string pwd){
//构建查询语句,不能用like模糊查询
var sql=$"select * from UserInfo where name='{name}' and pwd='{pwd}' ";
var table=SqlHelper.Query(sql);
//如果没有数据,返回null
if(table==null || table.Rows.Count<1){
return null;
}
//如果有数据,取第一行,转换为对象
var row=table.Rows[0];
UserInfo user =new UserInfo(){
Id=Convert.ToInt32(row["Id"]),
Name=Convert.ToString(row["Name"]),
Role=Convert.ToInt32(row["Role"]),
};
return user;
}
}
在DAL中定义一个方法,然后返回到UserInfo表中,根据名字和密码进行传值,先写出查询语句,然后进行是否有数据的判断,当判断出有数据时,将数据转换成对象
public class UserInfoBLL
{
public static UserInfo Select(string name, string pwd)
{
return UserInfoDAL.Select(name, pwd);
}
}
在BLL中调用DAL中的方法,将参数传递过去
<form id="form1" runat="server">
<dl>
<dd>账号</dd>
<dt>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox></dt>
</dl>
<dl>
<dd>密码</dd>
<dt>
<asp:TextBox ID="txtPwd" runat="server" TextMode="Password"></asp:TextBox></dt>
</dl>
<dl>
<dd></dd>
<dt>
<asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" />
</dt>
</dl>
</form>
用dl 和dd,dt 做出简易的登录页面,用dl dd和dt的好处是没有太深的嵌套,保证了代码的灵活性
protected void btnLogin_Click(object sender, EventArgs e)
{
var user = UserInfoBLL.Select(txtName.Text, txtPwd.Text);
if (user == null)
{
Response.Write("<script>alert('账号或密码不正确')</script>");
}
else if (user.Role == 0)
{
//用户
Response.Redirect("user.aspx");
}
else if (user.Role == 1)
{
//管理员
Response.Redirect("admin.aspx");
}
}
当点击登录页面时实现登录,先判断是否为空,当不为空时根据角色的不同跳转到不同的页面,实现根据角色的不同进行不同的登录。