资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,8,章 数据库应用开发,国信安教育,GXA Education,ADO.NET,数据访问技术系列课程概览,本次课程内容包括,以数据为中心的应用程序设计,ADO.NET,简介,数据访问系列课程简述,ADO.NET,数据访问技术系列课程概览,议程,以数据为中心的应用程序设计,ADO.NET,简介,数据访问系列课程简述,ADO.NET,数据访问技术系列课程概览,数据存储,ADO.NET,支持下列的存储类型,无结构,有结构,无层次的数据,以逗号分离的数据,(CSV),文件、,Microsoft Excel,电子表格、,Microsoft Exchange,文件、,Active Directory,文件等,有层次的数据,XML,文档等,关系型数据库,SQL Server,、,Oracle,、,Access,等,ADO.NET,数据访问技术系列课程概览,连接环境,连接环境是指用户在这种环境下始终保持与数据源的连接,优点,环境易于实施安全控制,同步问题易于控制,数据实时性优于其他环境,缺点,必须保持持续的网络连接,扩展性差,ADO.NET,数据访问技术系列课程概览,非连接环境,在非连接环境中,中央数据存储的一部分数据可以被独立地复制与更改,在需要时可以与数据源中的数据合并,优点,可以在任何需要的时间进行操作,在必要时才连接到数据源,不独占连接,非连接环境的应用提高了应用的扩展性与性能,缺点,数据不是实时的,必须解决数据的并发性与同步问题,ADO.NET,数据访问技术系列课程概览,一层,(,单机,),数据访问应用模型,数据访问的发展史,两层,三层,n,层,Internet,ADO.NET,数据访问技术系列课程概览,议程,以数据为中心的应用程序设计,ADO.NET,简介,数据访问系列课程简述,ADO.NET,数据访问技术系列课程概览,ADO.NET,简介,ADO.NET,是一系列与数据操作相关的类。它们提供,比,ADO,更灵活的数据访问机制,为非连接环境设计的系统架构,支持,XML,的编程对象模型,一系列用来在,.NET,架构中访问数据的类、结构以及枚举器,ADO.NET,数据访问技术系列课程概览,从,ADO,到,ADO.NET,ADO,ADO.NET,Connection,Connection,Connection,XxxConnection,XxxTransaction,XxxCommand,DataSet,XxxDataReader,XxxDataAdapter,ADO.NET,数据访问技术系列课程概览,ADO.NET,发展,OleDb,SqlClient,XML,处理,ADO.NET,1.1,OracleClient,ODBC,ADO.NET,1.1,支持镜像,异步数据访问,ADO.NET,2.0,LINQ,Entity,Framework,Data Services,ADO.NET,3.5,ADO.NET,数据访问技术系列课程概览,在连接环境中使用,ADO.NET,SqlDataReader,SqlCommand,SqlConnection,SQL Server,数据库,在连接环境中,只有操作结束后才断开与数据库的连接,1.,打开连接,2.,执行命令,3,从,DataReader,中读取数据,4.,关闭,DataReader,5.,断开连接,ADO.NET,数据访问技术系列课程概览,在非连接环境中使用,ADO.NET,DataSet,SqlDataAdapter,SqlConnection,SQL Server,数据库,在与数据库断开连接的情况下,数据库资源并不被独占,1.,打开连接,2.,填充数据集,3.,关闭连接,4.,处理数据集,5.,打开连接,6.,更新数据源,7.,关闭连接,ADO.NET,数据访问技术系列课程概览,议程,以数据为中心的应用程序设计,ADO.NET,简介,数据访问系列课程简述,ADO.NET,数据访问技术系列课程概览,ADO.NET,连接方式进行数据访问,处理连接字符串的安全性,使用连接池,ADO.NET,非连接方式进行数据访问,处理数据集,ADO.NET,连接方式进行数据访问,本次课程内容包括,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,连接环境的特点,连接环境是指用户在这种环境下始终保持与数据源的连接,优点,环境易于实施安全控制,同步问题易于控制,数据实时性优于其他环境,缺点,必须保持持续的网络连接,扩展性差,ADO.NET,连接方式进行数据访问,连接环境下的对象模型,XxxConnection,建立与数据源的连接,如,SqlConnection,用于建立与,Microsoft SQL,Server,的连接,,OleDbConnection,用于建立与任何支持,OLEDB,的数据源的连接,XxxCommand,执行数据源的命令,如,SqlCommand,可以调用一个,Microsoft SQL,Server,的存储过程,,XxxCommand,对象的,ExecuteReader,方法可以返回一个,XxxDataReader,对象,XxxDataReader,以只读的、前向的方式,以流的形式读取数据,例如,SqlDataReader,可以读取,Microsoft SQL Server,中的数据,XxxDataReader,由,XxxCommand,(通常是,SELECT,命令)的,ExecuteReader,方,法返回,XxxXmlReader,提供以快速的、无缓存的、前向的方式读取,XML,数据,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,定义连接,XxxConnection(,如,SqlConnection),连接字符串是包含数据连接参数的一个字符串,用于定义,对数据源的连接,连接字符串中包含的参数,连接字符串的重要参数:,Provider,连接所用的数据提供程序的种类,Data Source,要连接的,SQL Server,的名称,Initial Catalog,要连接的数据库的名称,Integrated Security,使用,Windows,验证确定用户权限,User ID/Password SQL Server,登录名称和密码,Persist Security Info,连接后是否传送安全信息,ADO.NET,连接方式进行数据访问,打开和关闭连接,打开连接,XxxConnection.Open(),关闭连接,XxxConnection.Close(),退出连接池,XxxConnection.Dispose(),ADO.NET,连接方式进行数据访问,DEMO-1,创建连接到数据库,1,、采用,Windows,集成认证方式连接数据库,2,、采用,SQL,认证方式连接数据库,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,Command,对象,Command,对象是一个,SQL,语句或者存储过程的引用,Command,对象可以直接被执行,属性,Name,:可选属性,可以用于引用该对象,Connection,:连接对象的引用,与数据库交互,CommandType,:,Text,、,StoredProcedure,、,DirectTable,的一种,CommandText,:,SQL,语句或者存储过程的名字,Parameters,:可以有零个或多个参数,ADO.NET,连接方式进行数据访问,Command,对象的重要方法,ExecuteScalar,返回一个惟一的值,ExecuteNonQuery,用于更新数据库或改变数据库结构,返回被影,响的行数,ExecuteReader,返回数据行的集合,ExecuteXmlReader(,仅限于,SqlCommand),返回一个,XML,的结果集,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,返回单个值,使用,ExecuteScalar(),方法,ADO.NET,比,ADO,效率更高,返回整个记录集,示例,一个特定产品的库存数量,有多少个产品,使用,COUNT,、,MAX,、,MIN,、,AVERAGE,ADO.NET,连接方式进行数据访问,DEMO-2,执行命令,1,、建立一个数据库,Messages,,并建立满足如下关系的表结构,2,、向权限表插入一条数据,3,、如果已插入新行,则会返回新,的,iPrivilegeId,列值,如果失败,,则返回,0,。,4,、获取管理员的数量,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,返回数据行,使用,ExecuteReader(),方法,返回一个,DataReader,例如:,SqlDataReader,、,OleDbDataReader,DataReader,只读、前向,数据行的流,ADO.NET,连接方式进行数据访问,使用,DataReader,获取数据,Read,方法,得到下一行,如果还有后续数据行存在,返回,True,;反之返回,False,Item,属性,aReader“aColumnName”,或,aReadercolumnPosition,GetXxx,方法,例如:,GetString,、,GetInt32,GetStringColumnPosition,(以基数零开始),GetValues,方法,一次返回当前行所有的列,高效,IsDbNull,方法,用于测试是否返回,NULL,Close,方法,Read,方法返回,False,时,应该调用,Close,方法关闭,DataReader,,释放,连接,ADO.NET,连接方式进行数据访问,返回多个结果集,一个存储过程可能包含多条,SQL,语句,将相关的任务分组,封装业务逻辑,如果一个存储过程返回了多个结果集,调用,NextResult,移到下一个结果集,判断有多少数据行被一个存储过程影响,使用,RecordsAffected,属性,ADO.NET,连接方式进行数据访问,DEMO-3,执行返回数据行的,Command,命令,1,、连接数据库,Messages,2,、获取,Messages,数据库中管理员的列表,3,、如果没有任何管理员应弹出提示,4,、在获取管理员的同时获取,ID,值,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,不返回值,使用,ExecuteNonQuery(),方法,执行,DDL,和,DCL,语句,CREATE/ALTER/DROP,GRANT/DENY/REVOKE,执行其它,DML,语句,INSERT/UPDATE/DELETE,ADO.NET,连接方式进行数据访问,DEMO-4,执行不返回值的,Command,命令,1,、通过,SQL,语句执行更新操作,ADO.NET,连接方式进行数据访问,议程,连接环境简介,连接到数据源,创建命令,返回单个值,返回数据行,不返回值,使用参数,ADO.NET,连接方式进行数据访问,Command,命令的参数,介绍,SQL,语句和存储过程可以有输入输出参数以及,返回值,Command,对象参数用来设置或者返回这些参,
展开阅读全文