首页 > 代码库 > 三层架构与四大天王之——增
三层架构与四大天王之——增
1、上集回顾
上篇文章我们介绍了三层架构的运行机制,其中包含了对实体类的理解,而后又以简单的登录为例展示了一下,接下来就让我们看看三层架构与“四大天王”的交互。
所谓的四大天王也就是对数据的四大操作——增、删、改、查,这四个功能是最基本,也是最主要的。那么,下面我们就来展示一下如何利用三层向数据库中增加数据。
2、增
(1)UI层
首先是由用户向U层输入要添加的数据
以下是确认添加的代码
private void button1_Click(object sender, EventArgs e) { Login.Model.UserInfo user = new Login.Model.UserInfo(); //实例化一个用户的实体,最为三层传递的信息 Login.Model.UserInfo User = new Login.Model.UserInfo(); //实例化一个用户实体,用来接收传回的信号 UserAdd.BLL.AddBLL userAB = new UserAdd.BLL.AddBLL(); //实例化B层对象 //获取所要保存的数据,全部打包到user对象中 user.UserName = txtUserName.Text.Trim(); user.Password = txtPassword.Text; //将user传给B层处理,并将结果返回给User User=userAB.Add(user); if (User.Flag) { MessageBox.Show("添加用户成功!"); } else if (User.Flag==false) { MessageBox.Show("该用户已经存在!"); } else { MessageBox.Show("添加用户失败!"); } }
(2)BLL层
负责将U层传来的实体,交给D层处理,然后返回D层传来的实体
public class AddBLL { //增加信息的方法,传入一个实体类型,并返回一个实体类型 public Login.Model.UserInfo Add(Login.Model.UserInfo user) { //实例化D层 UserAdd.DAL.AddDAL userAD = new UserAdd.DAL.AddDAL(); //实例化一个实体,用于接收传回的数据 Login.Model.UserInfo User = new Login.Model.UserInfo(); //将实体user传给D层处理,由实体User接收返回的数据 User=userAD.Add(user); return User; //返回实体信息 } }(3)DAL层
将B层传来的实体信息写入数据库,然后返回是否操作成功(由于上篇文章有DBUtil类,故此处省略)
public class AddDAL { public Login.Model.UserInfo Add(Login.Model.UserInfo user) { //查询功能,查找该用户是否存在,若存在则不能添加 using(SqlConnection conn=new SqlConnection(DBUtil.ConnString )) //用来链接数据库,自动关闭 { SqlCommand cmd = conn.CreateCommand(); //用来操作数据库 cmd.CommandText = @"SELECT * FROM USERS WHERE UserName=@UserName"; //查询语言 cmd.CommandType = CommandType.Text; cmd.Parameters.Add(new SqlParameter("@UserName", user.UserName)); //传入参数 conn.Open(); //打开链接 SqlDataReader reader = cmd.ExecuteReader(); //读取行的变量 Login.Model.UserInfo User = new Login.Model.UserInfo(); //实例化实体,用传回信息 while (reader.Read()) { //如果用户名存在,就返回用户为Flase if (User==null) { User.Flag = false; } return User; //传回信息,结束操作 } } //如果该用户不存在,则将信息保存 using(SqlConnection conn=new SqlConnection(DBUtil.ConnString )) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"INSERT INTO USERS(UserName,Password,Email) VALUES(@username,@password,@email)"; cmd.CommandType = CommandType.Text; //传入参数 cmd.Parameters.Add(new SqlParameter("@username", user.UserName)); cmd.Parameters.Add(new SqlParameter("@password", user.Password)); cmd.Parameters.Add(new SqlParameter("@email", user.Email)); conn.Open(); cmd.ExecuteNonQuery(); //执行SQL添加语句,返回1 //实例化实体,并传回 Login.Model.UserInfo User = new Login.Model.UserInfo(); User.Flag = true; return User; } } }最后,传回信息,判断,添加成功
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。