数据库应用程序开发.ppt_第1页
数据库应用程序开发.ppt_第2页
数据库应用程序开发.ppt_第3页
数据库应用程序开发.ppt_第4页
数据库应用程序开发.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章 数据库应用 程序开发,VB.NET程序设计,主讲教师:黄超男 email:,第2页,本章内容:,11.1 数据库基础知识 11.2 ADO.NET的使用 11.3 数据绑定 11.4 DataGrid控件 11.5 Data Form Wizard创建数据库 说明 :本章内容较复杂、较抽象、较复杂,为了 方便大家掌握精髓,课件中我加了“ ” 的地方,是要求大家重点掌握的。,第3页,学习目标,数据库基础知识 使用ADO.NET及常用对象 数据绑定 DataGrid的属性及方法 使用数据窗体向导,第4页,11.1 数据库基础知识,本节知识请大家回去复习SQL Server2000,在此不重复介绍。,第5页,11.2 ADO.NET的使用,ADO.NET是美国微软公司最新推出的,由ADO(Microsoft ActiveX Data Objects)演变而来的数据访问技术。 ADO.NET提供了一组.NET类,这些类不仅有助于实现对各种数据源进行高效访问,使用户能够对数据进行复杂的操作和排序,而且形成了一个重要的框架,在这个框架中可以实现应用程序之间的通信和XMLWeb服务。 ADO.NET具有全新的对象模型,该模型使用XML作为主要的数据传输格式,同时它使得用户对无关联数据的操作变得更加简单 比起ADO来说,ADO.NET的主要优点在于: 编程更简单、性能更高、伸缩性更强、对单个数据源特性的依赖更小,以及与其它平台的交互性更强,第6页,一.ADO.NET的工作原理,ADO.NET 的两个核心组件 数据提供程序(Data Provider) 数据集(DataSet),第7页,1.NET的数据提供程序,设计目的:为了实现对数据的快速访问 .NET框架提供了4个数据提供程序 SQL Server数据提供程序 OLE DB数据提供程序 ODBC数据提供程序 Oracle数据提供程序 包括4个对象:Connection、Command、DataReader和DataAdapter对象,第8页,Connection对象 提供与数据源的连接 Command对象 在用Connection对象成功连接数据库后,可以用Command对象对数据库进行操作,如对数据进行新增、删除、修改等 DataReader对象 从数据源中提供高性能的数据流 DataAdapter(数据适配器)对象 提供连接DataSet对象和数据源的桥梁 DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致,第9页,打个比方:,第10页,2. 数据集(DataSet),设计目的:为了实现独立于任何数据源的数据访问 DataSet不是一个单独的表,而是一组包含了表结构数据的表,同时它还包括表之间的所有关系 DataSet对象是一个存储在内存中的离线数据库,它并未与数据库建立即时的连接 DataSet对象专门用来存储从数据源中读出的数据,无论是哪种数据库,在DataSet中存储方式都是一致的 通常在进行数据操作时, 用户将来自数据库的数据填入DataSet中,然后再对其进行操作 当用户更改了数据并准备将更改结果发送回数据源时,DataSet可以一次性完成发送操作 由于DataSet的智能化,只有数据中被更改的部分才会被发送回数据库,第11页,二.使用ADO.NET开发数据库应用程序的步骤,第一步:根据使用的数据源,确定使用的.NET Framework数据提供程序。 第二步:建立与数据源的连接,需使用Connection对象。 第三步:执行对数据源的操作命令,通常是SQL命令,需使用Command对象。 第四步:使用数据集对获得的数据进行操作,需使用DataSet、DataReader等对象。 第五步:向用户显示数据,需使用数据控件。 说明: 使用ADO.NET开发数据库应用程序,可以使用编程的方法也可以使用VB.NET提供的数据控件。,第12页,第一步:确定使用的.NET Framework数据提供程序。 如果使用的是SQL Server数据库,则选择SQL Server 数据提供程序。该数据提供程序类位于命名空间System.Data.SqlClient中,所以在程序的最前面,要写上Imports System.Data.SqlClient,表示引入该命名空间。 如果使用的是Access数据库,则选择OLE DB数据提供程序。该数据提供程序类位于System.Data.OleDb命名空间中,所以在程序的最前面,要写上Imports System.Data.OleDb,表示引入该命名空间。,第13页,第二步:建立与数据源的连接,需使用Connection对象。 1.在访问数据库之前首先需要连接到数据库 2.使用Connection对象创建和管理连接 SqlConnection对象 管理与SQL Server数据库的连接 OleDbConnection对象 管理与可通过OLE DB访问的任何数据存储区的连接 OdbcConnection对象 管理与通过使用连接字符串或ODBC数据源名称创建的数据源的连接 OracleConnection对象 管理与Oracle数据库的连接,第14页,3.创建Connection对象常使用方法 1)使用代码的方法 使用New关键字创建一个Connection对象。 例如: Dim sqlCon AS New SqlConnection() 或 Dim oleDbCon As New OleDbConnection() 2)使用控件的方法 在窗体设计窗口中,双击【工具箱】窗格中的SqlConnection控件图标或OleDbConnection控件图标,将控件添加到窗体下方,系统同时自动创建对应的SqlConnection类或OleDbConnection类对象。 说明:创建连接对象之后,还需要根据具体应用设置连接 字符串,实现连接对象与数据源的连接。,第15页,4.Connection对象常用属性 1)ConnectionString属性:用于读取和设置用于打开数据库的命令字符串。是Connection对象中最重要的属性。只有在数据库处于关闭状态的时候才可以被设置。该属性被设置的时候,只有使用了Open方法后,属性才会有效。 (1)使用SQL Server方式的连接字符串 dim constr as string constr=“user id=访问数据库的用户名;password=密码;initial catalog=数据库名;data source=数据源” sqlCon.ConnectiongString=constr 例如: dim constr as string constr=“user id=sa;password=;initial catalog=学生数据库;data source=(local)” sqlCon.ConnectiongString=constr,第16页,(2)使用OLE EB方式的连接字符串 dim constr as string constr=“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=数据源” oleDbcon.ConnectiongString=constr 例如: dim constr as string constr=“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:student.mdb” oleDbcon.ConnectiongString=constr,第17页,2)ConnectionTimeout属性:用于设置连接数据库的允许时间。如果连接数据库的时间超出该值,则会产生一个错误。如果将该值设置为0,则表示没有连接时间的设置。当数据库被打开的时候,该属性是只读属性。 3)Database属性:用于设置ADOConnection对象的连接数据库名称。 4)DataSource属性:表示ADOConnection对象所连接的数据源。该属性在数据库被打开的时候是只读属性。要修改该属性,必须在ADOConnection使用了Close方法时。 5)State属性:表示ADOConnection对象的连接状态,如果该值为Connected,表示目前已经和ConnectionString属性指定的数据库建立连接,如为Disconnected,则表示没有和任何一个数据库建立连接。 6)UserID属性:表示访问数据库的用户ID。,第18页,5.Connection对象常用方法 在对数据库实际操作之前,首先需要打开连接,使用完后应立即关闭,这是由Open和Close方法来完成的。 1)Open方法:该方法用于和数据库建立一个连接。 其格式为:Connection对象Open() 如果一个数据库连接已经打开,则会产生一个错误。 例如: sqlCon.Open() 或 oleDbCon.Open() 2)Close方法:该方法用于结束数据库连接。 其格式为:Connection对象Close() 如果一个数据库连接已经被关闭,或者数据库正在被操作,将会产生一个错误。 例如: sqlCon.Close() 或 oleDbCon.Close() 3)Dispose方法:该属性用于销毁Connection对象。 其格式为:Connection对象.Dispose( ) 例如: sqlCon.Dispose() 或oleDbCon.Dispose(),第19页,6.总结:使用Connection对象的步骤 1)创建Connection对象。 2)把连接字符串赋值给Connection对象的ConnectionString属性。 3)调用Connection对象的Open方法以打开连接。 4)连接使用完毕后调用Connection对象的Close方法以关闭连接。,第20页,第三步:执行对数据源的操作命令,通常是SQL命令,需使 用Command对象。 1.创建Command对象常用方法 1)使用代码的方法 使用New关键字创建一个Command对象。 例如: Dim sqlCmd AS New SqlCommand() 或 Dim oleDbCmd As New OleDbCommand() 2)使用控件的方法 在窗体设计窗口中,双击【工具箱】窗格中的SqlCommand控件图标或OleDbCommand控件图标,将控件添加到窗体下方,系统同时自动创建对应的SqlCommand类或OleDbCommand类对象。 说明:创建Command对象后,可以利用Connection属性设置 Command对象的连接属性。,第21页,2.Command对象常用属性 1)CommandText属性:用来获取或设置要对数据源执行的SQL语句或存储过程名或表名。 例如: sqlCmd.CommandText=“select * from userinfo” 或 oleDbCmd.CommandText=“select * from userinfo” 2)Connection属性:用来获取或设置此Command对象使用的Connection对象的名称。 例如: sqlCmd. Connection=sqlCon 或 oleDbCmd. Connection=oleDbCon,第22页,3)CommandType属性:用来获取或设置Command对象要执行的命令的类型,即获取或设置一个指示如何解释CommandText属性的值。 该属性是CommandType枚举型的,取值有三种情况: StoredProcedure:表示CommandText属性中存放的是存储过程的名字; TableDirect:表示CommandText属性设置为要访问的一个或多个表的名称; Text:表示CommandText属性中存放SQL文本命令。 4)CommandTimeout属性:用来获取或设置在终止对执行命令的尝试并生成错误之前的等待时间,以秒为单位,默认为30秒。,第23页,3.Command对象常用方法 1)ExecuteNonQuery方法:该方法对Connection对象建立的连接进行不返回任何行的查询,如Update(更新)、Delete(删除)和Insert(插入),该方法返回一个整型(Integer)数据,表示受查询影响的行数。 例如: Dim sqlCmd AS New SqlCommand() sqlCmd.CommandText=“insert into userinfo values(hcn,123,黄超男,管理员)” sqlCmd. Connection=sqlCon sqlCmd. ExecuteNonQuery() sqlCon.Close(),第24页,2)ExecuteReader方法:该方法对Connection对象建立的连接执行一个CommandText属性中定义的命令,返回一个数据集Reader对象,该对象连接到数据库的结果集上,允许行检索。 3)ExecuteScalar方法:该方法对Connection对象建立的连接执行CommandText属性中定义的命令,但只返回结果集中的第1行第1列的值。,第25页,第四步:使用数据集对获得的数据进行操作,需使用DataSet、DataReader等对象。,DataReader对象 当处理大量数据时,大量内存的占用会导致性能上的问题。为解决这些问题,.NET框架包括了DataReader对象,但是这个对象仅仅从数据库返回一个只读的,仅向前数据流。且当前内存中每次仅存在一条记录。 DataReader接口支持各种数据源,可用于运行完一条命令仅需要返回一个简单的只读记录集的情况。 使用DataReader可以直接从数据库中读取数据,直接对数据库执行SQL语句,在此期间一直保持对数据库的连接,这并不是最好的方式。,第26页,1.DataSet对象的特点: 1)与数据库或SQL无关,它只是简单地对数据表进行操作、交换数据或者将数据绑定到用户界面上。 2)DataSet是强类型的,它把数据按照原来的类型存储。 3)DataSet是一个离线的记录集合。它的方法如查询、排序、筛选和更新等操作是独立于数据库的。 4)在DataSet对象中可以直接对其关系、列、表和类等对象操作,不必重新连接数据库。 5)一个DataSet对象可以包含多个表,每个表对象都包含行、列对象。 6)DataSet对象通过RowError对象可以逐行地捕捉表中的错误,如有错会及时提示,因此与数据库中的数据交换的效率及成功率都很高。 7)DataSet对象可以直接读取XML数据。,DataSet对象,第27页,2.DataSet对象的组成: Dataset对象是一个创建在内存中的集合对象,它可以包含任意数量的数据表,以及所有表的约束、索引和关系,相当于在内存中一个小型的关系数据库。一个DataSet对象一般包括: 1)DataTable对象:代表创建在DataSet中的表 2)DataRelation对象:代表着两个表之间的关系。 3)DataColunm对象:代表与列有关的信息,包括列的名称、类型和属性。 4)DataRow对象:代表DataTable中的记录。,第28页,3.DataSet对象的属性: 1)Tables属性 Tables属性获取包含在DataSet中的表的集合。 2)DataSetName属性 DataSetName属性获取或设置当前DataSet的名称。 3)Prifix属性 Prifix属性获取或设置一个XML前缀,该前缀是 DataSet的命名空间的别名。在调用ReadXml方法之前设置Prefix属性。 4)Relations属性 Relations属性用于将表链接起来,允许从父表浏览到子表的关系的集合。,第29页,4.DataSet对象的方法: 1)AcceptChanges方法 将修改结果提交给DataSet中的表或关系。 2)GetChanges方法 返回一个包含了上次的所有或部分修改结果的DataSet对象。 3)HasChanges方法 表示DataSet中的数据是否被修改过。 4)RejectChanges方法 用来删除内容修改,使之恢复到原始状态。 5)Clear方法 释放DataSet对象。,第30页,当需要从DataSet向数据库传出或传入数据时,需要使用DataAdapter(数据适配器)对象 DataAdapter对象是DataSet对象和数据源之间的桥梁,其主要功能是从数据源中检索数据、填充DataSet对象中的表、把用户对DataSet对象的更改写入到数据源。 .NET Framework中主要使用两种DataAdapter对象:OleDbDataAdapter和SqlDataAdapter。 OleDbDataAdapter对象适用于OLE DB数据源; SqlDataAdapter对象适用于SQL Server 7.0或更高版本。,DataAdapter对象,第31页,1. DataAdapter对象的属性: 1)InsertCommand属性 用于设置或取得对数据源添加数据的SQL命令。 2)DeleteCommand属性 用于设置或取得对数据源删除数据的SQL命令。 3)SelectCommand属性 用于设置或取得对数据源查询数据的SQL命令。 4)UpdateCommand属性 用于设置或取得对数据源更新数据的SQL命令。,第32页,2. DataAdapter对象的方法: 1)Fill方法 用来执行SelectCommand,用数据源的数据填充DataSet对象。 2)FillSchema方法 使用SelectCommand提取数据源中表的架构,并根据相应的约束在DataSet对象中创建一个空表。 3)Update方法 用来将DataSet对象中更改的内容更新到初始的数据库中。,第33页,例如: Dim sqlCmd AS New SqlCommand() Dim myds As New DataSet() Dim myDataAdapter As New sqlDataAdapter( ) sqlCmd.CommandText=“select * from userinfo” sqlCmd.Connection=sqlCon myDataAdapter.SelectCommand = sqlCmd myDataAdapter.Fill(myds, “userinfo“),第34页,第五步:向用户显示数据,需使用数据控件。 此内容将在后面的数据绑定小节中详细介绍。,第35页,举例:以系统登录功能为例,讲解使用编程的方法开发数据库应用程序的过程。,第36页,11.3 数据绑定,数据集不能直接显示其中的数据,必定通过能与其绑定的控件来实现。数据绑定是一个过程,即在运行时自动为与数据集中的元素相关联的控件设置属性。 Windows窗体可以进行两种类型的数据绑定:简单数据绑定和复杂数据绑定。,第37页,一.简单数据绑定,简单数据绑定就是将控件绑定到单个数据字段。每个控件仅显示数据集中的一个字段值。如果在窗体上要显示n项数据,就需要使用n个控件。 最常用的简单数据绑定是将数据绑定到文本框和标签。 要建立数据绑定,需要在设计或运行时对控件的DataBinding属性进行设置。 举例:,第38页,二.复杂数据绑定,复杂数据绑定允许将多个数据元素绑定到一个控件,同时显示记录源中的多行或多列。 支持复杂数据绑定的控件包括数据网格控件DataGrid、DataGridView、组合框控件ComboBox和列表框ListBox等。,第39页,1.DataGrid控件,Windows 窗体DataGrid控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论