理解ASP.NET中的三层中的DAL、BLL和USL
2008-10-07 13:51
701 查看
2008-04-18 22:24
一、三层体系架构 1.表示层(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 2.业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。 3.数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务 二、具体区分 1.表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 2.业务逻辑层:主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。 3.数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作,而不必管其他操作。 三、总结 三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。有的三层结构还加了Factory、Model等其他层,实际都是在这三层基础上的一种扩展和应用)。 一个简单的三层结构ASP.NET代码Login.aspx在页面上建用户名和密码的文本框,登录按钮 ----------------------- Login.aspx.cs [运行代码] [复制到剪贴板] [ ± ]CODE: protected void Submit_Click(object sender, EventArgs e) { DataAccess.Class1 dac = new DataAccess.Class1(); if (dac.CheckLogin(this.UName.Text, this.pwd.Text)) //Response.Write("Success!"); //Response.Redirect("Default.aspx?"); Server.Transfer("Default.aspx"); else Response.Write("Failed!"); //Server.Transfer("Login.aspx"); } ---------------------------------------------------- Default.aspx 在页面上建GridView,要写内容到数据库的文本框和按钮 ------------------------- Default.aspx.cs [运行代码] [复制到剪贴板] [ ± ]CODE: protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { BindData(); } } public void BindData() {//51aspx.com DataAccess.Class1 dac = new DataAccess.Class1(); DataSet ds = dac.getUsers(); this.GridView1.DataSource = ds.Tables[0].DefaultView; this.GridView1.DataBind(); } protected void Button1_Click(object sender, EventArgs e) { DataAccess.Class1 dac = new DataAccess.Class1(); DataSet ds = dac.getUsers(); DataRow dr = ds.Tables[0].NewRow(); dr["UsersName"] = this.TextBox1.Text; dr["Passwords"] = this.TextBox2.Text; dr["BlogName"] = this.TextBox3.Text; ds.Tables[0].Rows.Add(dr); dac.updataBystoredprocedure(ds); BindData();//51aspx.com } ------------------------------------------------------------- Common类库: [运行代码] [复制到剪贴板] [ ± ]CODE: //cn public const string ConnectString = "server=localhost;database=DBxBlog;UID=xBlog;PassWord=123456"; //Sql public const string Sql_getUser = "select * from Users"; //Table public const string table_Users = "Users"; //StoredProcedure public const string StoredProcedure_insert = "insertUsers"; ------------------------------------------------------------------- DataAccess类库(数据层): [运行代码] [复制到剪贴板] [ ± ]CODE: SqlConnection cn = new SqlConnection(Common.Class1.ConnectString); SqlDataAdapter da; DataSet ds=new DataSet(); //gettable public DataSet getUsers() { SqlCommand cmd = new SqlCommand(Common.Class1.Sql_getUser,cn); da = new SqlDataAdapter(cmd); da.Fill(ds,Common.Class1.table_Users); return ds; } //Login public bool CheckLogin(string name, string pwd) { try { SqlCommand cmd = new SqlCommand("select count(*) from Users where UsersName='" + name + "'and Passwords='" + pwd + "'", cn); cn.Open(); int count = -1; count = Convert.ToInt32(cmd.ExecuteScalar()); if (count < 1) return false; return true; } catch (Exception ex) { return false; } } //textbox updata public void updata(DataSet ds) { SqlCommand cmd = new SqlCommand("insert into Users(UsersName,Passwords,BlogName)valuse(@UsersName,@Passwords,@BlogName)", cn); cmd.Parameters.Add("@UsersName",SqlDbType.VarChar,20,"UsersName"); cmd.Parameters.Add("@Passwords", SqlDbType.VarChar, 50, "Passwords"); cmd.Parameters.Add("@BlogName", SqlDbType.VarChar, 20, "BlogName"); da=new SqlDataAdapter (); da.InsertCommand=cmd; cn.Open(); da.Update(ds,Common.Class1.table_Users); cn.Close(); } //stroedprocedure updata public void updataBystoredprocedure(DataSet ds) { SqlCommand cmd = new SqlCommand(Common.Class1.StoredProcedure_insert,cn); cmd.Parameters.Add("@UsersName",SqlDbType.VarChar,20,"UsersName"); cmd.Parameters.Add("@Passwords", SqlDbType.VarChar, 50, "Passwords"); cmd.Parameters.Add("@BlogName", SqlDbType.VarChar, 20, "BlogName"); cmd.CommandType = CommandType.StoredProcedure; da=new SqlDataAdapter(); da.InsertCommand=cmd; cn.Open(); da.Update(ds,Common.Class1.table_Users); cn.Close(); } |
相关文章推荐
- 理解ASP.NET中的三层中的DAL、BLL和USL
- 理解ASP.NET中的三层中的DAL、BLL和USL
- 理解ASP.NET中的三层中的DAL、BLL和USL
- 【转】理解ASP.NET中的三层中的DAL、BLL和USL
- 理解ASP.NET中的三层中的DAL、BLL和USL
- 理解ASP.NET中的三层中的DAL、BLL和USL(转)
- 【转】asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- ASP.NET的三层架构(DAL,BLL,UI)
- ASP.NET的三层架构(DAL,BLL,UI)
- ASP.NET的三层架构(DAL,BLL,UI)
- ASP.NET的三层架构(DAL,BLL,UI)
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- ASP_NET的三层架构(DAL,BLL,UI)
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- 【转】asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- ASP.NET的三层架构(DAL,BLL,UI)
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- ASP.NET的三层架构(DAL,BLL,UI)
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- ASP.NET的三层架构(DAL,BLL,UI)