基于C#实现的三层架构实例
程序员文章站
2023-12-17 17:19:46
本文所述为基于c#实现的三层架构。对于三层的概念查相信大家并不陌生,这里举一个关于三层的简单实例,真正看一下它是如何具体实现的.
我们先来一起看看实体类-model
实...
本文所述为基于c#实现的三层架构。对于三层的概念查相信大家并不陌生,这里举一个关于三层的简单实例,真正看一下它是如何具体实现的.
我们先来一起看看实体类-model
实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!
using system; using system.collections.generic; using system.linq; using system.text; namespace model { public class user { public user() { } private string _name; public string name { set { _name = value; } get { return _name; } } } }
再来说明一下,这个实例应用了配置文件来访问数据库,当然我们在做的时候可以使用sqlhelper,也可以将连接数据库的这些代码直接放在d层
<add name="connectionstring" connectionstring="data source=localhost;initial catalog=tester;user id=sa;password=123456" providername="system.data.sqlclient" />
三层中的最底层-数据访问层(dal) 这一层要引用实体类和对configuration的引用
实质:就是对数据库中的内容的增,删,改,查
using system; using system.collections.generic; using system.linq; using system.text; using model; using system.data; using system.configuration; using system.data.sqlclient; namespace dal { public class userdb { public bool user_add(model.user model) { string setting = configurationmanager.connectionstrings["connectionstring"].tostring(); sqlconnection myconn=new sqlconnection(setting); myconn.open(); sqlcommand cmd=new sqlcommand("insert into dbo.[user]([name]) values(@name)",myconn); cmd.parameters.addwithvalue("@name", model.name); if (cmd.executenonquery()>0) { return true; } else { return false; } } } }
三层中的桥梁-业务逻辑层bll 这一层需要引用实体类和数据访问层
实质:负责处理u层的问题(本例子主要是对数据层的操作)
using system; using system.collections.generic; using system.linq; using system.text; using dal; namespace bll { public class userbll { dal.userdb db = new userdb(); public bool adduser(model.user model) { return db.user_add(model); } } }
三层中的顶层-表现层ui 这一层要引用实体类和业务逻辑层
实质:具体解决做什么的问题
using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.linq; using system.text; using system.windows.forms; using bll; using model; namespace 登陆 { public partial class form1 : form { public form1() { initializecomponent(); } private void button1_click(object sender, eventargs e) { model.user thisuser = new user(); thisuser.name = tb_username.text.tostring(); bll.userbll ub = new userbll(); if (ub.adduser (thisuser)) { messagebox.show ("true"); } else { messagebox.show ("false"); } } } }
三层之间的关系如下图所示:
解释:
上述代码中dal主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。bll则主要是调用dal层的操作,返回dal层添加用户的结果(true或者false)。这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。ui层则主要完成响应用户的需求,去调用bll层实现的adduser方法,dal层就是实实在在做这件事情的操作。