【三层】—ADO.NET基础
关于三层,很多的地方都有ADO.NET ,就自己在查看了ADO.NET 的一些基础,相应的
了解一下。简单的说,ADO.NET就是怎么和数据库进行交互的(增 删 改 查),相当于一
个接口.
ADO.NET是它是起源于ADO(ActiveX Data Objects),像VB.NET 是VB 6.0基础之
上的,为了在.NET 环境中更好的编程运行,ADO.NET 是一个COM组件库,主要用于访问
数据ADO.NET是一组用于和数据源进行交互的面向对象类库。 通常情况下,数据源是数
据库,但它同样也能够是文本文件、Excel表格或者XML文件。
一、ADO.NET数据库访问
初步了解到ADO.NET提供了平台互用性和可伸缩的数据访问,由一系列用于操作数据
访问的类组成,通过它可以快速地存取数据,其流程类似生活中的“买苹果“,首先,
买家根据卖家信息,和卖家打招呼并告知他购买意愿;其次,告诉卖家要买什么,具体
数量等信息;再次,卖家执行买家要求,称好水果;最后,装袋给买家,等待买家进一
步处理水果。过程中,WEB应用程序好比“买家”,数据库好比要买的“水果”,
ADO.NET核心对象好比“卖家”,WEB应用程序要想实现对数据库的操作,必须通过
和“卖家”ADO.NET核心对象,具体流程如下:
(1)打招呼:建立并打开连接
Using(SqlConnectioncn=newSqlConnection(connectionString))
{cn.Open();
数据库相关操作}
(2)告知“卖家”要做什么:初始化命令
SqlCommandcm=newSqlCommand();
cm.Connection=cn;
cm.commandText=“相关SQL命令”;
cm.Parameters.AddWithValue(“参数名”,参数值);
(3)卖家称水果:执行命令
cm.executeReader()或者cm.executeNonquery()或者cm.executeScalar(),三种方法视具体情况选择。
(4)卖家装袋,待买家下一步处理:保存执行结果待进一步处理
SqlDataReaderdr=cm.executeReader();|cm.executeScalar();
If(dr.read()
{相关数据处理;}
二、ADO.NET基础概念:
1、System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint
2、System.Data.Common(各种数据访问类的基类和接口):DataColumnMapping,DataTableMapping
3、System.Data.SqlClient(对Sql Server进行操作的数据访问类):
1)SqlConnection:数据库连接器
这主要是和数据的链接,一定要链接利用它。连接帮助指明数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。
2)SqlCommand:数据库命名对象
和数据成功的建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令。
3)SqlCommandBuilder:生存SQL命令
4)SqlDataReader:数据读取器
DataReader对象允许开发人员获得从Command对象的SELECT语句得到的结果的数据。开发人员需要操作数据,就还需要使用DataSet。
5)SqlDataAdapter:数据适配器,填充DataSet
6)SqlParameter:为存储过程定义参数
7)SqlTransaction:数据库事务
主要为4个提供者对象:Connection、DataReader、Command、DataAdapter
和1个用户对象DataSet
DataSet对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包
含列和行,就象一个普通的数据库中的表。
三、ADO.net、VB.NET 和Asp.net对比:
1、都是建立在.net平台坏境中运行的。
2、区别
1)Ado.net 是ado的一个后续升级版本,利用它可以操作数据库中的数据!Ado.Net是
ado的最新版本,是一个Data Access新的模型.
VB.net 是VB6.0的一个后续升级版本,它可以直接开发Windows应用程序
后面我们将学到的B/S中的 ASP.net 是用于开发WEB应用程序的!
2)ADO.net它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式
的支持.主要是通过.net的一些提供程序和数据库进行交互。
Asp.net是动态服务器页面。用户可以和他进行交互,经常通过ADO.net读取和更新数据
ado.net是数据操作对象,主要是访问数据库层的,
而.net 是指开发语言,页面aspx,后台代码aspx.cs
3)VB.NET可以当作一个编程语言,是vb6的一个后继版本,但是架构又很大改变,跟java类似.
ASP.NET是asp的升级版本,可以用C#或者Vb.NET来开发asp.net web应用程序.当然如果呢学过asp的话,也可以用asp的那套开发web程序.
联系:Vb.net利用Ado.net操作数据,Vb.net可以开发ASP.net程序。
四、VDO.NET 和三层
数据库有一个Article表,其中有一个content字段是text类型的大字段
Ado.net三层架构中Model层中有一个实体ArticleModel对应Article表
DAL层有一个GetModelList方法,返回List<ArticleModel>,也就是完整的ArticleModel
实体List
UI层有一个文章列表,列表中不需要用到content字段,如果还是用DAL层中的
GetModelList方法,返回完整的ArticleModel实体List,肯定是不合适的,那么对于
content这样的大字段要怎么处理呢
为UI层的文章列表专门作个实体类或写个GetModelListXXX()方法只填充需要字段这类的方式不考虑
一个朦胧的想法是利用Model里的Content属性作文章,写个类似延时加载的代码
小结:
为了更好的体现”高内聚,低耦合”的软件设计思想,在基于ado.net的数据库访问
技术中,三层架构思想应用越来越广泛,它以分层思想把WEB应用程序划分成不同的层次
加以实现,从而实现了对人员的合理分工,提高了开发效率,也使得.netweb应用程序的
可扩展性和健壮性得到很大的提升,在实际使用过程中,ASP.NET三层结构各司其职,互
不干涉,在WEB应用程序开发和后期维护中极为便捷,值得我们一探究竟。