三层
2022-08-18 本文已影响0人
山猪打不过家猪
三层结构
- Model实体层
直接与用户交互的层,登陆页面 - DAL数据层
封装所有与数据库交互的操作 - BLL业务层
业务处理,逻辑判断 -
Common 工具层
将平时常用的包放在这层
image.png
三层项目的创建
1. 添加一个空解决方案
image.png2. 添加三层
image.png image.png3. 创建web应用
image.pngimage.png
4.Model层添加UserInfo类
namespace CZBK.TestProject.Model
{
public class UserInfo
{
public int ID { get; set; }
public string UserName { get; set; }
public string UserPass { get; set; }
public DateTime RegTime { get; set; }
public string EmailAddr { get; set; }
}
}
- 需要给DAL数据层添加该层引用,因为数据层要用到这些字段
5.DAL层添加SqlHelper类
Web.config
<connectionStrings>
<add name="connStr" connectionString="server=127.0.0.1;uid=sa;pwd=shangxi;database=new_test" />
</connectionStrings>
- SqlHelper.cs
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace CZBK.TestProject.DAL
{
public class SqlHelper
{
private readonly static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public static DataTable GetTable(string sql, CommandType type, params SqlParameter[] pars)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlDataAdapter atper = new SqlDataAdapter(sql, conn))
{
atper.SelectCommand.CommandType = type;
if (pars!=null)
{
atper.SelectCommand.Parameters.AddRange(pars);
}
DataTable da = new DataTable();
atper.Fill(da);
return da;
}
}
}
public static int ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] pars)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.CommandType = type;
if ( pars !=null)
{
cmd.Parameters.AddRange(pars);
}
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
}
}
- 再添加一个UserInfoDAL.cs