2016三层学习文章.doc
文本预览下载声明
三层入门----asp.net
用最简单的方法实现用户注册。用户信息包括姓名,密码和权限。
界面如下:default.aspx
代码如下:default.aspx.cs
实现同样的功能,但在这里的要求是,对数据库操作的部分,必须从页面代码中分离!也就是说,不要在代码页上看到数据库操作的代码,而是通过调用某个方法等!(目标对数据库的操作进行分离)
具体做法:把涉及对数据库的操作的代码进行封装。在这里我使用一个类来封装对数据库的操作。具体操作时,在网站上新添加一个文件夹App_code,该文件夹是vs2005自带的,添加就可以了。该类的代码如下
用“//”注释的代码是原本在页面上的,,现在移植到这个类来了,,就进行必要的改造!
在这个操作数据库的类中,所有的代码都是操作数据库的,,这样在页面上就没有数据库的代码了
这样就可以做到数据库代码的分离!那为什么要分离数据库代码的,重要的一点是方便以后的维护等。
如下是页面的代码:
看完这幅图,,大家发觉第一份图的代码,除了代码量大大减少外,有没有发现对数据库操作的代码的,答案是没有!因为都被
我们封装成一个类了。如果我们要调用的话,,只要new一个数据库操作类的对象,然后传递必要的参数,调用里面的方法就可以了
通过返回值来获得我们想返回的结果!
在这里同样是实现对用户信息的注册,但是这个时候我要把用户的信息,从只有姓名,密码,权限。再增加一个Eamil地址。(目标使用面对像)
我们的一般做法是:
对于底层,是在数据库中增加一个字段叫Email,然后改动存储过程,把原来的参数从三个改成四个,多增加一个Email字段。
对于页面:我们在default.aspx中增加一个textbox控件,来接受用户输入的Email。在页面代码上传递给CreateUser的函数从三个改成四个,其他不变!
对于数据库操作类,把CreateUser的参数,由原来的三个改成四个,并对存储过程的参数进行相对应的改动。
分析上面的做法:需要改动的地方有三个,分别是SQL数据库,页面,和数据库操作类!那有没有一种方法是,不用去改动页面呢,或者是改动的范围和复杂性能不能减低点呢?因为三层的一个重要的原则是,各个层的改动,尽量少牵涉到其他的层!那我这里的处理方式是这样的,用对象进行传递。用对象传递是因为对象可以包含很多属性,当你需要的时候只要增加对属性的赋值就ok了,而不要去改动传递的参数!在这里说多了点理论,理解起来有点烦,没事,接下来有例子!
下面的做法是一般的做法,没用对象的!
底层的改动,就自己改了,这里不描述了!
页面的改动,包括Default.aspx和Default.aspx.cs
Defaul.aspx:增加一个Textbox控件
Defaul.aspx.cs:
数据库操作类的改动
到这里为止,所有的程序改动结束,程序运行成功!
那接下来,,我们用另一种方式来实现,但是用的是面对像的,就是用对象来传递!
对底层数据库的改动是一样的。这里也不多说,大家自己改动!
在App_code文件夹中新建一个类,这个类是用户信息的类,简称“用户信息类”,命名为User.cs。如图。。
读页面的改动,default.aspx不用改动,一样的,只改动default.aspx.cs.如图
这一步算是比较重要,大家如果有疑问大多是汇集在属性的赋值,和对象的传递。为什么要传递对象呢,传过去之后到数据库操作类中是
怎么进行处理的呢?我们带着疑问来到数据库操作类!
数据库操作类的改动;
在这里就可以为大家解开如何对传递过去的对象进行处理了,和是怎么处理的。其实,如果知道面对像编程的话,就知道了属性的作用了。
在这里也是。采用了属性的读取功能,然后对参数进行赋值。那这个解决了,那为什么要面对像呢?使用面对像的原因有好多,因为面
对象太精彩了,现在目前流行的web开发java和 。Net都是面对像的,所以足够让我们相信他的强大。这里我不说全部。我只说一点,用面对像的传递,能让我们在参数处理上更加方便,和维护上更加轻松。只要我们改动属性就可以了,参数就不用改了。如果以后用户信息要增地址什么的,,只要增加在页面对地址的属性赋值,然后在数据库操作来读出地址属性的值,然后赋给参数就可以了,而不用改动太多。
这里做个表比较下
内容 面对像 一般方法 增加参数的时候 页面增加对属性的赋值,调用方法不用改变方法参数。数据操作类。增加存储过程,并利用属性进行赋值。 页面在调用数据库操作类的方法的时候,都要改变参数的个数。在数据库操作类上也要改变参数。并且增加存储过程的参数。 两者明显的区别:如果用面对像的话,以后的改动只要变动对象就可以了,完全可以
显示全部