三层架构-表格添加
来源:互联网 发布:花生壳使用自己的域名 编辑:程序博客网 时间:2024/06/15 21:48
- 用户界面表示层(USL)
- 业务逻辑层(BLL)
- 数据访问层(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;
}
}
}
- 三层架构-表格添加
- 【三层】三层架构初识
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- win7 caffe使用笔记——创建数据以及数据转换leveldb
- Positive Negative Sign
- 集训快结束
- 坚持#第17天~回忆重装系统
- Ftp上传类
- 三层架构-表格添加
- javascript 运算符
- C++虚函数实现原理
- Tomcat之安全
- LeetCode 3. Longest Substring Without Repeating Characters
- Android四大组件之Activity
- Android Handler异步消息处理机制一: 基础理解
- 问题汇总
- Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式(r)