欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    数据访问编程基础.ppt

    • 资源ID:5359145       资源大小:956.51KB        全文页数:144页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据访问编程基础.ppt

    南京理工大学计算机学院,1,1,第5章 数据访问编程基础,南京理工大学计算机学院,2,5.1 分布式应用程序和数据集成简介,南京理工大学计算机学院,3,ADO.NET数据访问,System.Data名称空间是构造.NET框架数据库应用程序的基础,其中包含组成ADO.NET 结构的大部分类。ADO.NET 结构使得所创建的组件能够更高效地管理来自不同数据源中的数据。ADO.NET结构的中心为Dataset类。每个Dataset中都包含多个 DataTable 对象,而 DataTable对象,则包含来自某个数据源的数据。每个DataTable中都包含一个ColumnsCollection(DataColumn对象的集合),这确定了DataTable的结构。DataColumn对象的DataType属性代表数据类型;使用Readonly和AllowNull属性可以进一步确定数据的完整性;使用Expression属性可以构造用于计算输出的列。,南京理工大学计算机学院,4,ADO.NET使用离线数据结构,在传统的客户/服务器应用程序中,组件将建立与数据库的连接,并在应用程序运行过程中使连接保持打开状态。出于各种原因,该方法在许多应用程序中是不实用的:打开的数据库连接占用宝贵的系统资源。需要打开的数据库连接的应用程序极难按比例扩展。Web应用程序尤其需要便于缩放,因为Web站点的通信量可能会在非常短的时期内按数量级增加。在Web应用程序中,组件彼此之间本来就是不连接的。基于连接数据的模型可能使得使用连接结构在应用程序和组织边界之间交换数据变得困难且不实际。,南京理工大学计算机学院,5,ADO.NET使用离线数据结构,ADO.NET数据访问是以离线结构为基础进行设计的。应用程序连接到数据库的时间仅足够获取或更新数据。由于数据库并未被大部分时间空闲的连接占用,所以它可以为更多用户服务。操作连接数据有时也很有用。例如,在执行大量更新,且可能存在记录争用的应用程序中,连接数据结构可能十分重要。,南京理工大学计算机学院,6,数据被缓存到数据集内,最常见的数据任务是从数据库检索数据并对数据进行某些操作:显示数据、处理数据或将数据发送给另一个组件。应用程序需要经常处理不止一条记录,而是一组记录,通常应用程序所需的该组记录来自多个表。在不连接的数据模型中,每次应用程序需要处理下一条记录时都连接回数据库是不可行的(这样做会大大消除使用不连接数据的优越性)。因此解决方案是临时存储从数据库检索的记录,然后使用该临时集-数据集。数据集是从数据库检索的记录缓存。它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表(这些表基于实际数据库中的表),并且它可以包含有关这些表之间的关系和临时表可包含数据的约束的信息。,南京理工大学计算机学院,7,数据被缓存到数据集内,数据集内的数据通常是数据库中内容非常精简的版本。但是,可以用与操作实际数据十分类似的方式操作数据集。这样在操作时将保持与数据库的不连接状态,使数据库可以自由执行其他任务。若要实际从数据库获取数据并(可选)将数据写回数据库,可使用数据适配器。数据适配器包含有关如何填充数据集内的单个表和更新数据库中相应表的说明。数据集实际上是数据库数据的私有副本,所以它不一定反映数据库的当前状态。如果想要查看其他用户进行的最新更改,可以通过调用适当的Fill方法刷新数据集。使用数据集的一个便利之处是组件可以根据需要交换数据集。中层的某个业务对象可以创建和填充一个数据集,然后将它发送给应用程序中其他位置处的另一个组件以供处理。该功能意味着组件不必分别查询数据库。,南京理工大学计算机学院,8,数据集独立于数据源,数据集是作为从数据库获取的数据的缓存,但数据集与数据库之间没有任何实际关系。数据集是容器,它由从数据适配器执行的SQL命令或存储过程填充。由于数据集不直接绑定到数据源,所以它是来自多个源数据的好的集成点。数据集内的某些数据可能来自数据库,而它的其他部分可能来自另一个数据库或电子表格之类的非数据库源。数据集内的某些数据还可能来自另一个组件所发送的流。一旦数据在数据集内,则不管它的原始源是什么,都可以使用一致的对象模型对它进行操作。,南京理工大学计算机学院,9,数据以XML格式保存,数据需要从数据存储区移动到数据集,以及从数据集移动到各种组件。在ADO.NET中,传输数据的格式是XML。在ADO.NET中,XML是数据的基本格式。ADO.NET数据API自动用数据集内的信息创建XML文件或流,并将它们发送给另一个组件;第二个组件可以调用类似的API将XML读回数据集。数据不以XML格式存储在数据集内(例如,能使用XML分析器分析数据集内的数据),而是以更有效的格式存储。,南京理工大学计算机学院,9,南京理工大学计算机学院,10,数据以XML格式保存,以XML为基础的数据协议提供许多便利之处:XML是工业标准格式。这意味着你的应用程序数据组件可以与其他任何应用程序中的其他任何组件交换数据,只要该组件理解XML。许多应用程序被编写为可理解XML,为异类应用程序间交换提供了空前高的水平。XML是基于文本的。数据的XML表示形式不使用任何二进制信息,这使它可以通过任何协议(如HTTP)发送。大多数防火墙将阻塞二进制信息,但通过将信息格式化为XML,组件仍可以方便地交换信息。,南京理工大学计算机学院,10,南京理工大学计算机学院,11,数据结构定义,数据集以XML表示。数据集的结构(对数据集内有哪些表、列、数据类型、约束等的定义)使用XML架构进行定义。就像数据集包含的数据可以从XML加载和序列化为XML一样,数据集的结构也可以从XSD架构加载和序列化为XSD架构。对于对ADO.NET中的数据进行的大部分操作,你不必深入钻研架构。通常,Visual Studio.NET将基于在可视化设计器中进行的操作,根据需要生成和更新架构。,南京理工大学计算机学院,11,南京理工大学计算机学院,12,南京理工大学计算机学院,12,5.2 ADO.NET的优越性,南京理工大学计算机学院,13,互操作性,ADO.NET应用程序可以利用XML的灵活性和广泛的兼容性。由于XML是用于在网络中传输数据集的格式,因此可以读取XML格式的任何组件都可以处理数据。实际上,接收组件根本不必是ADO.NET组件;传输组件可以只是将数据集传输给其目标,而不考虑接收组件的实现方式。唯一的要求是接收组件能够读取XML。作为一项工业标准,XML正是在遵守这种互操作性的情况下设计的。,南京理工大学计算机学院,13,南京理工大学计算机学院,14,可维护性,当已配置的应用程序越来越受用户欢迎时,增加的性能负荷可能需要进行结构更改。随着已配置的应用程序服务器上的性能负荷的增长,系统资源会变得不足,并且响应时间或吞吐量会受到影响。面对该问题,软件设计者可以选择将服务器的业务逻辑处理和用户接口处理划分到单独计算机上的单独层上。实际上,应用程序服务器层将替换为两层,缓解了系统资源缺乏的压力。它是要在应用程序配置以后增加层数。如果原始应用程序使用数据集以ADO.NET实现,则该转换很容易进行。当用两层替换单个层时,将安排这两层交换信息。由于这些层可以通过XML格式的数据集传输数据,所以通讯相对较容易。,南京理工大学计算机学院,14,南京理工大学计算机学院,15,可编程性,在Visual studio中使用ADO.NET的一个好处是:这些工具生成的数据类将产生已声明类型的数据集。而这又使用户可以通过已声明类型的编程访问数据。已声明类型的数据集的代码更易阅读。因为提供了语句约束,所以它还便于编写。最后,已声明类型的数据集的代码更安全,原因在于它提供对类型的编译时检查。,南京理工大学计算机学院,15,南京理工大学计算机学院,16,高性能,对于离线应用程序,ADO.NET数据库提供的性能优于ADO离线的记录集。当使用COM封送在层间传输不连接的记录集时,会因将记录集内的值转换为COM可识别的数据类型而导致显著的处理开销。在ADO.NET中,这种数据类型转换则没有必要。,南京理工大学计算机学院,16,南京理工大学计算机学院,17,可缩放性,因为Web可以极大增加对数据的需求,所以可缩放性变得很关键。Internet应用程序具有无限的潜在用户。尽管应用程序可以很好地为十几个用户服务,但它可能无法为成百上千个(或几百万个)用户提供同样好的服务。使用数据库锁和数据库连接之类资源的应用程序不能很好地为大量用户服务,因为用户对这些有限资源的需求最终将超出其供应能力。ADO.NET通过鼓励程序员节省有限资源来实现可缩放性。由于所有ADO.NET应用程序都使用对数据的不连接访问,因此它不会在较长持续时间内保留数据库锁或活动数据库连接。,南京理工大学计算机学院,17,南京理工大学计算机学院,18,南京理工大学计算机学院,18,5.3 ADO.NET和ADO的比较,南京理工大学计算机学院,19,数据在内存中的表示形式,在ADO中,数据的内存中表示形式为记录集;而在ADO.NET中它为数据集。1表的个数记录集看起来像单个表。如果记录集包含来自多个数据库表的数据,则它必须使用JOIN查询,将来自各个数据库表的数据组合到单个结果表中。数据集是一个或多个表的集合。数据集内的表称为数据表,明确地说,它们是DataTable对象。如果数据集包含来自多个数据库表的数据,它通常将包含多个DataTable对象。即每个DataTable对象通常对应于单个数据库表或视图。这样,数据集就可以模仿基础数据库的结构。,南京理工大学计算机学院,19,南京理工大学计算机学院,20,数据在内存中的表示形式,2数据导航在ADO中,使用ADO MoveNext方法可以顺序扫描记录集的行。在ADO.NET中,行表示为集合,因此可以像依次浏览任何集合那样依次浏览表,或通过序号索引或主键索引访问特定行。,南京理工大学计算机学院,20,南京理工大学计算机学院,21,数据离线访问,在ADO中,记录集可以提供离线的访问,但它主要是为连接的访问设计的。ADO和ADO.NET中的不连接处理之间存在一个显著差异。在ADO中,通过调用OLE DB提供程序来与数据库通讯。在ADO.NET中,通过数据适配器(OleDbData Adapter或SqlDataAdapter对象)与数据库通讯,这将调用由OLE DB提供者或DBMS提供的API。ADO和ADO.NET之间的重要差异:在ADO.NET中,数据适配器允许用户控制将对数据集所做的更改传输到数据库的方式,如实现性能优化、执行数据验证检查或另外进行其他任何额外处理。,南京理工大学计算机学院,21,南京理工大学计算机学院,22,应用程序间的数据共亨,要将ADO离线记录集从一个组件传输到另一个组件,应使用COM封送。若要将ADO.NET数据集传输给另一个应用程序,则应使用XML传输流。相对于COM封送,XML文件传输提供以下便利之处。1更丰富的数据类型COM封送提供一组有限的数据类型(由COM标准定义的那些类型)。由于ADO.NET中的数据集传输基于XML格式,所以对数据类型没有限制。因此,共享数据集的组件可以使用任何丰富的数据类型集。,南京理工大学计算机学院,22,南京理工大学计算机学院,23,应用程序间的数据共亨,2性能传输大型ADO记录集或大型ADO.NET数据集会使用网络资源。随着数据量的增长,施加于网络的压力也在增加。ADO和ADO.NET都可以最大限度地降低所传输的数据。但ADO.NET还提供另一个性能优势:ADO.NET不需要数据类型转换。而使用COM封送来在组件间传输记录集的ADO,则需要将ADO数据类型转换为COM数据类型。3穿透防火墙防火墙可以影响试图传输不连接ADO记录集的两个组件。需要注意的是,防火墙通常配置为允许HTML文本通过,但防止系统级请求(如COM封送)通过。因为组件使用XML交换ADO.NET数据库,所以防火墙可以允许数据集通过。,南京理工大学计算机学院,23,南京理工大学计算机学院,24,南京理工大学计算机学院,24,5.4 ADO.NET连接,南京理工大学计算机学院,25,ADO.NET连接设计工具介绍,若要在数据存储区和应用程序之间移动数据,必须首先拥有到该数据存储区的连接。在ADO.NET中,可以使用以下两个连接对象之一创建和管理连接:SqlConnection该对象管理与SQL Server 7.0版或更高版本的连接。OleDbConnection该对象管理与可通过OLE DB访问的任何数据存储区的连接。它通过忽略OLE DB层(包括其他措施)对SqlConnection对象进行优化。,南京理工大学计算机学院,25,南京理工大学计算机学院,26,ADO.NET连接设计工具介绍,1连接字符串两种连接对象大致提供相同的成员。然而,对于给定OleDbConnection对象,可用的特定成员取决于它所连接到的数据源。并非所有数据源都支持OleDbConnection类的全部成员。与连接对象关联的主要属性是ConnectionString属性,它由带有属性值对的字符串(用于提供登录数据库和指向特定数据库所需的信息)组成。Provider=SQLOLEDB.l;Datasouce=MySQLServer;Initial Catalog=pubs;user ID=sa;password=sa;,南京理工大学计算机学院,26,南京理工大学计算机学院,27,ADO.NET连接设计工具介绍,2打开和关闭连接连接的两个主要方法是Open和Close。Open方法使用ConnectionString属性中的信息联系数据源并建立一个打开的连接。Close方法关闭连接。关闭连接是必要的,因为大多数数据源只支持有限数目的打开的连接,因为打开的连接占用宝贵的系统资源。如果正在使用数据适配器或数据命令,则不必显式打开和关闭连接。,南京理工大学计算机学院,27,南京理工大学计算机学院,28,ADO.NET连接设计工具介绍,3池连接应用程序经常有多个用户执行相同类型的数据库访问。例如,在Web应用程序中可能有许多用户正在查询相同的数据库,以获取相同数据。在这些情况下,可以通过使应用程序共享到数据源的连接来提高应用程序的性能。否则,让每个用户打开和关闭单独连接的开销会对应用程序性能产生不利影响。如果使用的是OleDbConnection类,则连接池将由提供程序自动处理,不必自己进行管理。如果使用的是SqlConnection类,则连接池被隐式管理,但也提供选项允许自己管理池。,南京理工大学计算机学院,28,南京理工大学计算机学院,29,ADO.NET连接设计工具介绍,4事务连接对象通过BeginTransaction方法支持事务,该方法创建事务对象(OleDbTransaction或SqlTransaction对象)。事务对象反过来支持提交或回滚事务的方法。事务必须通过代码进行管理。,南京理工大学计算机学院,29,南京理工大学计算机学院,30,ADO.NET连接设计工具介绍,5可配置的连接属性在许多应用程序中,连接信息无法在设计时确定。典型的策略是将连接属性指定为动态属性,为用户提供一种方式(如Windows窗体或Web窗体页)来指定相关详细信息,然后更新配置文件。.NET框架中内置的动态属性机制会在读取属性时自动从配置文件获取相应值,并在更新值时更新配置文件。,南京理工大学计算机学院,30,南京理工大学计算机学院,31,ADO.NET连接设计工具介绍,6连接信息和安全性通过内在的ASP.NET安全模型,可以保护Web应用程序的二进制文件和配置文件不会被Web访问,该模型使用任意Internet协议(HTTP、FTP等)防止对这些文件的访问。若要防止通过其他方法(例如从内部网络中)对Web服务器计算机本身的访问,请使用Windows的安全功能。在该模型中,用户对本地网络的身份验证凭据也用于访问数据库资源,并且连接字符串中不使用任何显式用户名或密码。,南京理工大学计算机学院,31,南京理工大学计算机学院,32,ADO.NET连接设计工具介绍,7服务器管理器中的设计时连接服务器管理器提供一种创建到数据源的设计时连接的方式。应用程序不直接使用用户以该方式创建的连接。通常,设计时连接提供的信息用于设置添加到应用程序的新连接对象的属性。,南京理工大学计算机学院,32,南京理工大学计算机学院,33,ADO.NET连接设计工具介绍,8Visual Studio中的连接设计工具通常不必在Visual Studio中直接创建和管理连接对象。当使用Data Adapter wizard之类的工具时,这些工具会提示用户输入连接信息(即连接字符串信息),并自动为正在操作的窗体或组件创建连接对象。,南京理工大学计算机学院,33,南京理工大学计算机学院,34,OLE DB连接管理类,1OleDbConnection类的常用属性 OleDbConnection类中定义的常用属性包括:(1)ConnectionString属性 ConneotionString属性用以获取或设置用于打开数据源的字符串。当打开连接时,ConnectionString属性的值为OLE DB提供者连接字符串;而当关闭连接时,ConnectionString属性的值为用户字符串。(2)ConnectionTimeout属性 ConnectionTimeout属性用以获取或设置在终止建立连接并产生异常前的等待时间。ConnctionTimeout属性的值为以秒为单位的整数值,其默认值为15秒。,南京理工大学计算机学院,34,南京理工大学计算机学院,35,OLE DB连接管理类,1OleDbConnection类的常用属性 OleDbConnection类中定义的常用属性包括:(3)Database属性 Database属性用以获取或设置当前数据库名,或连接打开后将使用的数据库名。(4)DataSource属性 DataSource属性用以获取或设置将连接的数据库名。如果设置DataSource属性值时连接处于打开状态,则将抛出InvalidOperationException异常。(5)IsolationLevel属性 IsolationLevel属性用以获取或设置本地事务使用的隔离级别。,南京理工大学计算机学院,35,南京理工大学计算机学院,36,OLE DB连接管理类,1OleDbConnection类的常用属性 OleDbConnection类中定义的常用属性包括:(6)Password属性 Password属性用以获取或设置连接时使用的密码。如果设置此属性时连接处于打开状态,则将抛出InvalidOperationException异常。(7)Provider属性 Provider属性用以获取或设置提供者的名称。Provider属性的默认值为“msdasql”。(8)UserID属性 UserlD属性用以获取或设置连接时使用的用户ID。,南京理工大学计算机学院,36,南京理工大学计算机学院,37,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(1)构造函数 调用ADOConnection类的构造函数,以初始化该类的一个新实例,其定义如下:public ADOConnection();public ADOConnection(string ConnectionString);参数:ConnectionString-将用于打开数据源的连接字符串。,南京理工大学计算机学院,37,南京理工大学计算机学院,38,OLE DB连接管理类,ADOConnection 实例的初始属性值,南京理工大学计算机学院,38,南京理工大学计算机学院,39,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(2)ReleaseObjectPool方法调用ReleaseObjectPool方法,以标志当最后一个基础OLE DB提供者被释放后,就可以清除ADOConnection对象池了。此方法不能被继承,其定义如下:public static void ReleaseObjectPool();基础OLE DB提供者被创建后,就会缓存一个对象池。当用户完成对所有ADOConnection对象的使用后,应调用此方法。,南京理工大学计算机学院,39,南京理工大学计算机学院,40,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(3)BeginTransaction方法调用BeginTransaction方法,以使用当前IsolationLevel开始数据库事务。该方法的定义如下:public override int BeginTransaction();,南京理工大学计算机学院,40,南京理工大学计算机学院,41,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(4)Close方法调用Close方法,以关闭到数据源的连接。该方法的定义如下:public override Close();如果连接已经处于关闭状态,或事务仍在处理中,则将抛出InvalidOperationException异常。Close方法将等待所有事务被清除后才关闭连接。如果在处理StateChange事件时调用Close方法,则不会激发附加的StateChange事件。,南京理工大学计算机学院,41,南京理工大学计算机学院,42,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(5)CommitTransaction方法调用CommitTransaction方法,以确认数据库事务。该方法的定义如下:public override void CommitTransaction();在派生类中重载CommitTransaction方法时,必须确保调用基类中的CommitTransaction 方法。,南京理工大学计算机学院,42,南京理工大学计算机学院,43,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(6)Dispose方法调用Dispose方法,以除去本ADOConnection对象。该方法的定义如下:public override void Dispose();在派生类中重载Dispose方法时,必须确保调用基类中的Dispose方法。,南京理工大学计算机学院,43,南京理工大学计算机学院,44,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(7)Open方法调用Open方法,以使用当前属性设置打开一个数据库连接。该方法的定义如下:public override void Open();如果连接已经被打开,调用Open方法将抛出InvalidOperationException异常。在派生类中重载Open方法时,必须确保调用基类中的Open方法。,南京理工大学计算机学院,44,南京理工大学计算机学院,45,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(8)RollbackTransaction方法调用RollbackTransaction方法,以回滚施用于数据库的事务。该方法的定义如下:public override void RollbackTransaction();事务只能从延迟状态(已经调用了BeginTransaction方法,但尚未凋用CommitTransaction 方法)被回滚。在派生类中重载RollbackTransaction方法时,必须确保调用基类中的RollbackTransaction方法。,南京理工大学计算机学院,45,南京理工大学计算机学院,46,OLE DB连接管理类,2ADOConnection类的常用方法 ADOConnection 类中定义的常用方法包括:(9)OnInfoMessage方法调用OnInfoMessage方法,以激发ADOInfoMessageEventArgs事件。该方法的定义如下:protected virtual void OnInfoMessage(ADOInfoMessageEventArgs imevent);参数:imevent-包含事件数据的ADOInfoMessageEventArgs。在派生类中重载OnInfoMessage方法时,必须确保调用基类中的OnInfoMessage方法。,南京理工大学计算机学院,46,南京理工大学计算机学院,47,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(l)ConnectionString属性ConnectionString属性用以获取或设置用于打开数据源的字符串。如果连接被中断或连接已经被打开,则设置ConnectionString属性时将会抛出InvalidOperationException异常。只有连接处于关闭状态时才能设置连接字符串。,南京理工大学计算机学院,47,南京理工大学计算机学院,48,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(2)ConnectionTimeout属性ConnectionTimeout属性用以获取或设置在终止建立连接并产生异常前的等待时间。ConnectionTimeout属性的值为以秒为单位的整数值,其默认值为15秒。如果将ConnectionTimeout属性设置为0,则表示无时间限制。ConnectionTimeout属性会覆盖在连接字符串中指定的值。当连接被打开后,此属性变为只读属性。,南京理工大学计算机学院,48,南京理工大学计算机学院,49,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(3)Database属性Database属性用以获取或设置当前数据库名,或连接打开后将使用的数据库名。如果当连接打开时设置Database属性,则其值将设置提供者的当前分类属性;如果在连接关闭后设置Database属性,则其值将设置提供者的初始编目属性。只有Database和Isolation Level属性能在连接打开时被设置。,南京理工大学计算机学院,50,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(4)DataSource属性DataSource属性用以获取或设置将连接的数据库名。如果设置DataSource属性值时连接处于打开状态或被中断,则将抛出InvalidOperationException异常。DataSource属性会覆盖在连接字符串中指定的值。当连接被打开后,此属性变为只读属性。,南京理工大学计算机学院,50,南京理工大学计算机学院,51,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(5)IsolationLevel属性IsolationLevel属性用以获取或设置本地事务使用的隔离级别。IsolationLevel属性的值为IsolationLevel枚举值之一,其默认值为ReadCommitted。如果设置IsolationLevel属性值时连接不处于打开状态或被中断,则将抛出InvalidOperationException异常。如果连接被关闭,则IsolationLevel属性将被设置为ReadCommited。,南京理工大学计算机学院,51,南京理工大学计算机学院,52,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(6)Password属性Password属性用以获取或设置连接时使用的密码。如果设置此属性时,连接处于打开状态或被中断,则将抛出InvalidOperationException异常。Password属性会覆盖在连接字符串中指定的值。当连接被打开后,此属性变为只读属性。,南京理工大学计算机学院,52,南京理工大学计算机学院,53,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(7)ServerVersion属性ServerVersion属性用以获取包含SQL Server版本的字符串。如果在连接关闭时使用该属性,则将抛出InvalidOperationException异常。,南京理工大学计算机学院,53,南京理工大学计算机学院,54,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(8)State属性State属性用以获取连接的当前状态。State属性的值为DBObjectState枚举值的逐位组合,其默认值为Closed。调用SQLConneetion对象的方法Open:Close OpenBroken或Dispose:Open BrokenClose:Broken Close,南京理工大学计算机学院,54,南京理工大学计算机学院,55,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(9)TransactionLevel属性TransactionLevel属性用以获取事务级别。,南京理工大学计算机学院,55,南京理工大学计算机学院,56,SQL连接管理类,1SQLConnection类的常用属性 SQLConnection类中定义的常用属性包括:(10)UserID属性UserID属性用以获取或设置连接时使用的用户ID。UserID属性的默认值为空字符串。如果设置此属性时连接处于打开状态,则将抛出InvalidOperationException异常。,南京理工大学计算机学院,56,南京理工大学计算机学院,57,SQL连接管理类,2ADOConnection类的常用方法 先介绍SQLConnection类中定义的常用方法-构造函数。调用SQLConnection类的构造函数,以初始化该类的一个新实例,其定义如下:public SQLConnection();public SQLConnection(String ConnectionString);public SQLConnection(String DataSource,String userID,String password);public SQLConnection(String DataSource,String userID,String password,String database);,南京理工大学计算机学院,57,南京理工大学计算机学院,58,SQL连接管理类,2ADOConnection类的常用方法 先介绍SQLConnection类中定义的常用方法-构造函数。参数:ConnectionString-将用于打开数据源的连接字符串。DataSource-SQL Server所在的服务器名。userID-指定了SQL Server的用户ID。password-SQL Server的用户密码。database-将连接的SQL Server中的数据库。常用方法见书P116.,南京理工大学计算机学院,58,南京理工大学计算机学院,59,创建ADO.NET连接对象,使用以下方法可以创建连接:使用下列任意数据设计工具:DataAdapter Configuration Wizard,该向导提示输入信息以创建连接,而该连接又连接到数据适配器;Data Form Wizard,该向导创建连接对象,此对象为它正在配置的窗体的一部分。将表、选定的列或存储过程从服务器管理器拖动到窗体或组件上。通过将这些元素之一拖动到窗体上,可同时创建一个数据适配器和一个连接。创建一个独立连接。该选项在窗体或组件上创建一个连接对象,用户需要手动配置其属性。当希望在运行时设置连接属性或在属性窗口中设置属性时,该策略非常有用。该过程将在后面加以描述。通过编程创建连接。,南京理工大学计算机学院,59,南京理工大学计算机学院,60,南京理工大学计算机学院,60,5.5 ADO.NET适配器,南京理工大学计算机学院,61,数据适配器简介,数据适配器是以.NET托管提供程序(用于在数据源和数据集之间通讯的一组对象)的组成部分。除适配器以外,托管提供程序还包括连接对象、数据阅读器对象和命令对象。适配器用于在数据源和数据集之间交换数据。在许多应用程序中,这意味着从数据库将数据读入数据集,然后从数据集将已更改数据写回数据库。然而,数据适配器可以在任意源和数据集之间移动数据。Visual Studio提供两种主要的数据适配器以供与数据库一起使用:OleDbDataAdapter对象适用于由Ole Db提供程序公开的任何数据源。SqlDataAdapter对象特别为SQL Server而优化。由于该对象不必通过 Ole Db 层,所以比 OleDbDataAdaPter 快。,南京理工大学计算机学院,61,南京理工大学计算机学院,62,数据适配器简介,1数据适配器和相关表在数据集内有单独表的含意是,数据适配器通常不引用联接表的SQL命令或存储过程。相反,相关表中的信息由各个适配器分别读到数据集内。然后使用DataRelation对象管理数据集表之间的约束(如级联更新),并允许在相关主记录和子记录之间移动。2连接对象数据适配器需要有与数据源的打开的连接才能读写数据。因此,适配器使用OleDbConneotion或SqlConnection对象与数据源通讯(适配器最多可以包含四个连接引用,分别用于它可执行的一种操作类型:选择、更新、插入和删除)。OleDbConnection对象是到任意OLE DB数据源的连接。,南京理工大学计算机学院,62,南京理工大学计算机学院,63,数据适配器简介,3ADO.NET命令对象使用适配器,可以读取、添加、更新和删除数据源中的记录。可以指定每种操作的进行方式,适配器支持以下四个属性:SelectCommand引用某命令(SQL语句或存储过程名称)从数据存储区检索行。InsertCommand引用某命令以便向数据存储区插入行。UpdateCommand引用某命令以便修改数据存储区中的行。DeleteCommand引用某命令以便从数据存储区删除行。,南京理工大学计算机学院,63,南京理工大学计算机学院,64,数据适配器简介,4命令参数数据适配器中的命令通常是参数驱动的。例如,SelectCommand属性的命令的WHERE子句中经常有一个参数,以便在运行时指定要从数据库获取哪些记录。其他命令使用一些参数,它们允许在运行时传递要写入记录的数据以及要更新数据库中的哪个记录。,南京理工大学计算机学院,64,南京理工大学计算机学院,65,数据适配器简介,5使用数据适配器读取和更新数据适配器的主要用途是在数据源和数据集之间进行数据通讯。适配器支持在二者之间移动数据的特定方法。使用数据适配器执行以下操作:将行从数据存储区检索到数据集内相应的数据表中。若要将行检索到数据集内,请使用SqlDataAdapter对象或OleDbDataAdapter对象上的Fill方法。当调用该方法时,它将向数据存储区传输一条SQL SELECT语句。将对数据集表的更改传输到相应的数据存储区。若要将数据集的数据集表传输到数据存储区,请使用适配器的Update方法。当调用该方法时,它将根据受影响的记

    注意事项

    本文(数据访问编程基础.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开