三层架构实现登陆注册功能

本文展示了如何利用ASP.NET实现一个基于三层架构的登录注册功能。前端包括用户输入界面,如用户名、密码、手机号等字段的验证。后台处理用户输入,检查用户名和密码的唯一性,并通过数据库操作进行数据持久化。代码中包含了数据验证、错误提示以及数据库操作的相关逻辑。
摘要由CSDN通过智能技术生成
-------------WebRegister.aspx前台:------------------


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebRegister.aspx.cs" Inherits="Register.WebRegister" %>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
  <style type="text/css">
    #mydiv
    {
        width:auto;height:auto;border:solid 1px red;
        position:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px;
        }
      .style1
      {
          width: 87px;
      }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="mydiv" >
        <table>
            <tr>
                <td colspan="2" align="center" >
                    <asp:Label ID="lblUserId" runat="server" Text=""></asp:Label>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    用户编号
                </td>
                <td>
                    <asp:TextBox ID="txtUserId" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    用户名
                </td>
                <td>
                    <asp:TextBox ID="txtUserName" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    密码
                </td>
                <td>
                    <asp:TextBox ID="txtPassword" runat="server" Height="19px" 
                        ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    姓名
                </td>
                <td>
                    <asp:TextBox ID="txtRealName" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    手机
                </td>
                <td>
                    <asp:TextBox ID="txtMobile" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                        ErrorMessage="手机号码格式不正确" 
                        ValidationExpression="(\(\d{3}\)|\d{3}-)?\d{8}" 
                        ControlToValidate="txtMobile" ForeColor="Red" Font-Size="Small" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td>
                    部门
                </td>
                <td>
                    <asp:DropDownList ID="ddlDepartment" runat="server" AppendDataBoundItems="True" 
                        ValidationGroup="org">
                        <asp:ListItem Text="---请选择---" Value="0"></asp:ListItem>
                    </asp:DropDownList>      
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    地址
                </td>
                <td>
                    <asp:TextBox ID="txtAddress" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    身份证号
                </td>
                <td>
                    <asp:TextBox ID="txtIdCard" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
                        ControlToValidate="txtIdCard" ErrorMessage="身份证号码格式不正确" Font-Size="Small" 
                        ForeColor="Red" ValidationExpression="\d{17}[\d|X]|\d{15}" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td >
                    邮箱
                </td>
                <td >
                    <asp:TextBox ID="txtEmail" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" 
                        ControlToValidate="txtEmail" ErrorMessage="邮箱格式不正确" Font-Size="Small" 
                        ForeColor="Red" 
                        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td>
                    是否结婚
                </td> 
                <td>
                  <asp:DropDownList ID="ddlMarry" runat="server" AppendDataBoundItems="True" 
                        ValidationGroup="org">
                      <asp:ListItem Text="---请选择---" Value="0"></asp:ListItem>
                      <asp:ListItem Value="true">是</asp:ListItem>
                      <asp:ListItem Value="false">否</asp:ListItem>
                </asp:DropDownList>
             
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    籍贯
                </td>
                <td>
                    <asp:TextBox ID="txtCensusRegister" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" 
                        ValidationGroup="a" />   <asp:Label ID="lblinfo" runat="server" Text="" ForeColor="Red"></asp:Label>
                </td>
                <td class="style1"></td>
            </tr>
        </table>
      
    </div>
    </form>
</body>
</html>
--------------------WebRegister.aspx后台------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;




namespace Register
{
    public partial class WebRegister : System.Web.UI.Page
    {
        string strcon = ConfigurationManager.ConnectionStrings["sqlserverStrcon"].ConnectionString;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadDepartment();
                LoadUserId();
            }
        }




        private void LoadUserId()
        {
            SqlConnection conn = new SqlConnection(strcon);
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT UserId FROM T_User WHERE Id=(SELECT MAX(Id)FROM T_User)";
            lblUserId.Text = "最后一条记录Id为:" + cmd.ExecuteScalar().ToString();
            cmd.Dispose();
            conn.Dispose();
        }




        private void LoadDepartment()
        {
            Register.BLL.Department bdepartment = new BLL.Department();
            /*使用传统的DataSet结果集返回
            DataSet ds = bdepartment.GetList("");
            this.ddlDepartment.DataSource = ds.Tables[0];
             */
            //使用实体层来返回数据
            List<Register.Model.Department> modellist = bdepartment.GetModelList();
            this.ddlDepartment.DataSource = modellist;
            this.ddlDepartment.DataTextField = "Department_Name";
            this.ddlDepartment.DataValueField = "Department_Id";
            this.ddlDepartment.DataBind();
        }




        protected void btnSave_Click(object sender, EventArgs e)
        {
            Register.Model.T_User muserid = new Model.T_User();
            muserid.UserId = txtUserId.Text;
            Register.BLL.T_User buserid = new BLL.T_User();




            Register.Model.T_User musername=new Model.T_User();
            musername.UserName=txtUserName.Text;
            Register.BLL.T_User busername=new BLL.T_User();




            if (buserid.ValidatorUserId(muserid) == true)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "information", "<script type='text/javascript'>alert('该UserId已存在!');</script>");
                txtUserId.Text = "";
            }
            else if(busername.ValidatorUserName(musername)==true)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "information", "<script type='text/javascript'>alert('该该用户名已存在!');</script>");
                txtUserName.Text = "";
            }
            else
            {
                Register.Model.T_User muser = new Model.T_User();
                muser.UserId = txtUserId.Text;
                muser.UserName = txtUserName.Text;
                muser.Password = txtPassword.Text;
                muser.RealName = txtRealName.Text;
                muser.Mobile = txtMobile.Text;
                muser.Department = ddlDepartment.SelectedValue;




                Register.BLL.T_User buser = new BLL.T_User();




                Register.Model.T_UserInfo mUserInfo = new Model.T_UserInfo();
                mUserInfo.UserId = txtUserId.Text;
                mUserInfo.T_Address = txtAddress.Text;
                mUserInfo.T_IdCard = txtIdCard.Text;
                mUserInfo.T_Email = txtEmail.Text;
                mUserInfo.T_IsMarry = Convert.ToBoolean(ddlMarry.SelectedValue);
                mUserInfo.T_CensusRegister = txtCensusRegister.Text;


                Register.BLL.T_UserInfo bUserInfo = new BLL.T_UserInfo();


                if (buser.Add(muser) > 0 && bUserInfo.Add(mUserInfo) > 0)
                {
                    lblinfo.Text = "添加成功!";
                }
                else
                {
                    lblinfo.Text = "添加失败!";
                }
            }




        }
    }
}




-----------WebLogin.aspx前台---------------


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebLogin.aspx.cs" Inherits="Register.WebLogin" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
        <style type="text/css">
    #mydiv
    {
        width:300px;height:200px;border:solid 1px red;
        position:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="mydiv">
        <table>
            <tr>
                <td>
                    用户名:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    密  码:<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
                </td>
            </tr>      
            <tr>
                <td align="center">
                    <asp:Button ID="btnLogin" runat="server" Text="登录" οnclick="btnLogin_Click" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


-----------WebLogin.aspx后台---------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace Register
{
    public partial class WebLogin : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {


        }


        protected void btnLogin_Click(object sender, EventArgs e)
        {
            Register.Model.T_User muser = new Model.T_User();
            muser.UserName = txtUserName.Text;
            muser.Password = txtPassword.Text;
            Register.BLL.T_User btuser = new BLL.T_User();
            if (btuser.ValidatorUser(muser) == true)
            {
                Response.Write("登录成功!");
            }
            else
            {
                Response.Write("登录失败!");
            }
        }
    }
}


--------------Web.config----------------------


  <connectionStrings>
    <add name="sqlserverStrcon" connectionString="Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111"/>
  </connectionStrings>


-----------------------------------MODEL层----------------------------------------------------


-----------------------T_User.cs:
using System;
namespace Register.Model
{
/// <summary>
/// T_User:实体类(属性说明自动提取数据库字段的描述信息)
/// </summary>
[Serializable]
public partial class T_User
{
public T_User()
{}
#region Model
private int _id;
private string _userid;
private string _username;
private string _password;
private string _realname;
private string _mobile;
private string _department;
/// <summary>
/// 
/// </summary>
public int Id
{
set{ _id=value;}
get{return _id;}
}
/// <summary>
/// 用户编号
/// </summary>
public string UserId
{
set{ _userid=value;}
get{return _userid;}
}
/// <summary>
/// 用户名
/// </summary>
public string UserName
{
set{ _username=value;}
get{return _username;}
}
/// <summary>
/// 密码
/// </summary>
public string Password
{
set{ _password=value;}
get{return _password;}
}
/// <summary>
/// 用户姓名
/// </summary>
public string RealName
{
set{ _realname=value;}
get{return _realname;}
}
/// <summary>
/// 手机
/// </summary>
public string Mobile
{
set{ _mobile=value;}
get{return _mobile;}
}
/// <summary>
/// 所属部门
/// </summary>
public string Department
{
set{ _department=value;}
get{return _department;}
}
#endregion Model




}
}


-------------------------T_UserInfo.cs:


using System;
namespace Register.Model
{
/// <summary>
/// T_UserInfo:实体类(属性说明自动提取数据库字段的描述信息)
/// </summary>
[Serializable]
public partial class T_UserInfo
{
public T_UserInfo()
{}
#region Model
private int _id;
private string _userid;
private string _t_address;
private string _t_idcard;
private string _t_email;
private bool _t_ismarry;
private string _t_censusregister;
/// <summary>
/// 
/// </summary>
public int Id
{
set{ _id=value;}
get{return _id;}
}
/// <summary>
/// 
/// </summary>
public string UserId
{
set{ _userid=value;}
get{return _userid;}
}
/// <summary>
/// 
/// </summary>
public string T_Address
{
set{ _t_address=value;}
get{return _t_address;}
}
/// <summary>
/// 
/// </summary>
public string T_IdCard
{
set{ _t_idcard=value;}
get{return _t_idcard;}
}
/// <summary>
/// 
/// </summary>
public string T_Email
{
set{ _t_email=value;}
get{return _t_email;}
}
/// <summary>
/// 
/// </summary>
public bool T_IsMarry
{
set{ _t_ismarry=value;}
get{return _t_ismarry;}
}
/// <summary>
/// 
/// </summary>
public string T_CensusRegister
{
set{ _t_censusregister=value;}
get{return _t_censusregister;}
}
#endregion Model




}
}


-------------------Department.cs:
using System;
namespace Register.Model
{
/// <summary>
/// Department:实体类(属性说明自动提取数据库字段的描述信息)
/// </summary>
[Serializable]
public partial class Department
{
public Department()
{}
#region Model
private int _id;
private string _department_id;
private string _department_name;
/// <summary>
/// 
/// </summary>
public int Id
{
set{ _id=value;}
get{return _id;}
}
/// <summary>
/// 
/// </summary>
public string Department_Id
{
set{ _department_id=value;}
get{return _department_id;}
}
/// <summary>
/// 
/// </summary>
public string Department_Name
{
set{ _department_name=value;}
get{return _department_name;}
}
#endregion Model




}
}


------------------DataAccess层:-------------------


----------------DbHelperSQL.cs:


using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.Common;
using System.Collections.Generic;
namespace Register.DataAccess
{
    /// <summary>
    /// 数据访问抽象基础类
    /// Copyright (C) Maticsoft 
    /// </summary>
    public abstract class DbHelperSQL
    {
        //数据库连接字符串(web.config来配置),多数据库可使用DbHelperSQLP来实现.
        public static string connectionString = ConfigurationManager.ConnectionStrings["sqlserverStrcon"].ConnectionString;
        public DbHelperSQL()
        {            
        }




        #region 公用方法
        /// <summary>
        /// 判断是否存在某表的某个字段
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <param name="columnName">列名称</param>
        /// <returns>是否存在</returns>
        public static bool ColumnExists(string tableName, string columnName)
        {
            string sql = "select count(1) from syscolumns where [id]=object_id('" + tableName + "') and [name]='" + columnName + "'";
            object res = GetSingle(sql);
            if (res == null)
            {
                return false;
            }
            return Convert.ToInt32(res) > 0;
        }
        public static int GetMaxID(string FieldName, string TableName)
        {
            string strsql = "select max(" + FieldName + ")+1 from " + TableName;
            object obj = GetSingle(strsql);
            if (obj == null)
            {
                return 1;
            }
            else
            {
                return int.Parse(obj.ToString());
            }
        }
        public static bool Exists(string strSql)
        {
            object obj = GetSingle(strSql);
            int cmdresult;
            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
            {
                cmdresult = 0;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值