1、打开visual stdio—>新建项目—>Web—>ASP.NET web应用程序—>选择Empty
2、建好类库,右键选择解决方案“你的项目名”—>添加—>新建项目—>visual C#—>类库—>建立DAL类库(数据访问层)、BLL类库(业务逻辑层)
3、为了更规范使用,建立文件夹分别放入对应的文件夹里面。右键选择添加—>文件夹
4、添加引用,也是比较重要的一步(用户显示层可以引用业务逻辑层和数据访问层勾选DAL\BLL,业务逻辑层引用数据访问层勾选DAL,数据访问层则不添加引用)
5、做一个简单的登录验证,右键选择用户显示层下“你的项目” —>添加—>类—>选择web—>web窗体
6、编写DAL连接数据库,双击数据访问层下的.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;//导包
namespace DAL
{
public class testDAL
{
public bool yanZheng(string _userName , string _userPwd) {
//获取连接
using(SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123456;database=testDB")){
//打开连接
conn.Open();
//SQL语句参数化,为了防止注入
string sql = "select 1 from userInfo where userName=@userName and userPwd=@userPwd";
//执行SQL语句
using(SqlCommand cmd = new SqlCommand(sql,conn)){
cmd.Parameters.Add(new SqlParameter("userName",_userName));
cmd.Parameters.Add(new SqlParameter("userPwd",_userPwd));
SqlDataReader reader = cmd.ExecuteReader();
if(reader.Read())
return true;
return false;
}
}
}
}
}
7、编写BLL下的.cs文件,引用DAL中.cs里面的方法
using DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
public class testBLL
{
public bool Bll_yanZheng(string _userName,string userPwd) {
//引用DAL里的方法,先实例化一个它的对象
testDAL tdl = new testDAL();
return tdl.yanZheng(_userName, userPwd);
}
}
}
8、在显示层窗体后台获取用户输入的数据
using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace 三层架构
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack){
//获取用户名和密码
string userName = Request["userName"];
string userPwd = Request["userPwd"];
//引用BLL里的BLL_yanZheng()方法,实例化对象
testBLL tbl = new testBLL();
//根据返回值类型判断登录是否成功
Boolean result = tbl.Bll_yanZheng(userName, userPwd);
if (result)
{
//成功跳转
Response.Redirect("result.aspx");
}
else {
Response.Write("账号或密码错误!");
}
}
}
}
}
9、写一个数据库,与DAL中连接数据库的名称一致
create database testDB
go
use testDB
go
create table userInfo
(
uId int primary key identity,
userName varchar(50) not null,
userPwd varchar(20)
)
go
insert userInfo values('老王','123456')
10、测试(名字为老王、密码123456)
输入老王、123456
注:主要是数据库连接这一块得细心,一不小心就会出错。其次就是逻辑,用户显示层可以引用DAL(数据访问层)和BLL(业务逻辑层),BLL(业务逻辑层)引用DAL(数据访问层)。文章中有几处方法的调用,起到了很重要的作用。
逻辑(获取用户数据,调用BLL中BLL_yanZheng(),这时候BLL又调用DAL中yanZheng()方法,最后再根据返回值判断数据库中是否存在该用户!)
感谢阅读,入坑不久,大神勿喷!