三层架构-表格添加

来源:互联网 发布:花生壳使用自己的域名 编辑:程序博客网 时间:2024/06/15 21:48

    三层体系结构的概念

    1. 用户界面表示层(USL)
    2. 业务逻辑层(BLL)
    3. 数据访问层(DAL)

    UI层:

    页面:WebForm1.aspx

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

        <title></title>

    </head>

    <body>

        <form id="form1" runat="server">

        <div>

          用户登录名<asp:TextBox ID="txt_userLogin" runat="server"></asp:TextBox><br />

           用户姓名<asp:TextBox ID="txt_userName" runat="server"></asp:TextBox><br />

           密码<asp:TextBox ID="txt_userPwd" runat="server" TextMode="Password"

    ></asp:TextBox>    <br />

           用户简介<asp:TextBox ID="txt_note" runat="server" TextMode="MultiLine"></asp:TextBox>

            <asp:Button ID="bt_save" runat="server" Text="保存" OnClick="bt_save_Click" />

        </div>

        </form>

    </body>

    </html>

    WebForm1.aspx.cs

    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.Data.SqlClient;

    using System.Text;

     

    namespace WebApplication2

    {

        public partial class WebForm1 : System.Web.UI.Page

        {

            protected void Page_Load(object sender, EventArgs e)

            {

     

            }

     

            protected void bt_save_Click(object sender, EventArgs e)

            {

                string userLogin = this.txt_userLogin.Text;        //赋值

                string userName = this.txt_userName.Text;

                string userPwd = this.txt_userPwd.Text;

                string note = this.txt_note.Text;

     

               Model.Tb_user userModel = new Model.Tb_user();         //实例化Model中的Tb_user对象

                userModel.UserLogin = userLogin;                     //Tb_user中的数据赋值

                userModel.UserName = userName;

                userModel.UserPwd = userPwd;

                userModel.Note = note;

     

               Bll.BllUser bll = new Bll.BllUser();    //UI层与业务逻辑层建立联系,实例化业务逻辑层对象

                int r = bll.addUser(userModel);      //实现业务逻辑层的方法,记得传参

             

                if (r == 0)                                            //  r表示被影响行数

                {

                    Response.Write("数据插入失败");

                }

                else if (r == -1)

                {

                    Response.Write("用户名重复");

                }

                else {

                    Response.Write("用户添加成功");

                }

            }

        }

    }

     

    Model    Tb_user.cs

    Model属于实体类,每个表都需要在Model下建类

    当数据字段过多时,将字段写入Model中,封装,等待调用

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

     

    namespace Model

    {

        public class Tb_user

        {

            private int id;      

            public int Id         //属性访问器

            {

                get { return id; }

                set { id = value; }

            }

            private string userLogin;

            public string UserLogin

            {

                get { return userLogin; }

                set { userLogin = value; }

            }

            private string userName;

            public string UserName

            {

                get { return userName; }

                set { userName = value; }

            }

            private string userPwd;

            public string UserPwd

            {

                get { return userPwd; }

                set { userPwd = value; }

            }

            //private string note;

            public string Note

            {

                set;

                get;

            }

        }

    }

     

     

    业务逻辑层:BLL类库 

    添加引用:DAL    Model

    BllUser.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using Model;

     

    namespace Bll

    {

        public class BllUser

        {

            /// <summary>

            ///新增用户

            /// </summary>

            /// <param name="userLogin">用户登录名</param>

            /// <param name="userName">用户姓名</param>

            /// <param name="userPwd">密码</param>

            /// <param name="note">简介</param>

            /// <returns>返回-1,说明用户名重复,返回0插入失败,返回1,添加成功</returns>

     

           public int addUser(Tb_user userModel)         //含参的addUser()方法

          {                     

               Dal.DalUser dal = new Dal.DalUser();               //实例化数据访问层

     

               if (dal.checkUserLogin(userModel.UserLogin) != 0)        //判断用户名是否重复存在         

              {

                    return -1;                    //如果存在返回(-1,数据传递给页面,由页面显示,添加用户不成功

                }

                else

                {

                    return dal.addUser(userModel);           //addUser方法含参

                }

             

            }

     

        }

    }

     

     

    数据访问层:DAL类库

    添加引用:Model

    DAL层单纯的处理数据,进行与数据库相关的操作

    DalUser.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Data;                               //引入命名空间

    using System.Data.SqlClient;

     

    namespace Dal

    {

        public class DalUser

        {

          //数据访问层定义addUser()方法,但此处只负责链接数据库,以及处理基本数据

            public int addUser(Model.Tb_user userModel) {

                //连接数据库字符串

                SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=csmsDB;Integrated Security=True");   

               //打开数据库

               conn.Open();

              

                //实例化可变长度字符串

                StringBuilder strSql = new StringBuilder();

                //插入Model中的数据字段

                strSql.AppendFormat("insert into tb_user(userLogin,userName,userPwd,note) values('{0}','{1}','{2}','{3}')",userModel.UserLogin,userModel.UserName,userModel.UserPwd,userModel.Note);

     

                //实例化一个SqlCommand对象,帮助执行sql语句

               SqlCommand cmd = new SqlCommand();

                cmd.Connection = conn;

                cmd.CommandText = strSql.ToString();

             

                  //执行sql语句

                int r = cmd.ExecuteNonQuery();

                return r;

            }

     

            public int checkUserLogin(string userLogin) {

                SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=csmsDB;Integrated Security=True");

                conn.Open();

     

                StringBuilder strSql = new StringBuilder();

                strSql.AppendFormat("select count(*) from tb_user where userLogin='{0}'",userLogin);

                SqlCommand cmd = new SqlCommand();

                cmd.Connection = conn;

                cmd.CommandText = strSql.ToString();

     

                int r = Convert.ToInt32( cmd.ExecuteScalar());

                return r;

            }

        }

    }

0 0
原创粉丝点击