《2_第8章_数据库编程_3.ppt》由会员分享,可在线阅读,更多相关《2_第8章_数据库编程_3.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、L/O/G/O第八章第八章 数据库编程数据库编程褚龙现褚龙现软件学院软件学院回顾回顾-控制结构控制结构条件控制语句条件控制语句 IF-THEN,IF-THEN-ELSE和嵌套的和嵌套的IF语句语句 1.IF condition THEN Sequence_of_statements;END IF 2.IF condition THEN Sequence_of_statements1;ELSE Sequence_of_statements2;END IF;3.在在THEN和和ELSE子句中还可以再包括子句中还可以再包括IF语句,即语句,即IF 语句可以嵌套语句可以嵌套 软件学院软件学院回顾回顾-
2、控制结构控制结构循环控制语句循环控制语句 LOOP,WHILE-LOOP和和FOR-LOOP 1.最简单的循环语句最简单的循环语句LOOP LOOP Sequence_of_statements;END LOOP;2.WHILE-LOOP WHILE condition LOOP Sequence_of_statements;END LOOP;3.FOR-LOOP FOR count IN REVERSEbound1 bound2 LOOP Sequence_of_statements;END LOOP;软件学院软件学院回顾回顾-创建创建存储过程存储过程v定义存储过程的语法定义存储过程的语法
3、CREATE PROCEDURE 存储过程名存储过程名 参数参数1 数据类型数据类型=默认值默认值 OUTPUT,参数参数n 数据类型数据类型=默认值默认值 OUTPUT AS SQL语句语句和和C C语言的函数一样,参数可选语言的函数一样,参数可选参数分为输入参数、输出参数参数分为输入参数、输出参数 输入参数允许有默认值输入参数允许有默认值软件学院软件学院回顾回顾-创建创建存储过程存储过程执行存储过程执行存储过程vEXECUTE(执行)语句用来调用存储过程(执行)语句用来调用存储过程v调用的语法调用的语法EXEC 过过程名程名 参数参数EXEC proc_stu软件学院软件学院 以数据以数据
4、为中心的中心的应用程序用程序1教教 学学 内内 容容ADO.NET2软件学院软件学院教教教教 学学学学 目目目目 标标标标难点点 理解不同数据理解不同数据访问方式方式重重点点 了解了解ADO.NET对象模型象模型 理解数据理解数据访问基本步基本步骤 ADO.NET对象模型象模型 数据数据访问基本步基本步骤软件学院软件学院教教教教学学学学具具具具体体体体内内内内容容容容v数据存储方式数据存储方式v数据访问方式数据访问方式v数据访问模型数据访问模型vADO.NET对象模型对象模型v数据提供程序数据提供程序v连接环境访问数据连接环境访问数据v断开连接环境访问数据断开连接环境访问数据软件学院软件学院8
5、.4 以数据为中心的应用程序以数据为中心的应用程序v数据存储数据存储v连接环境连接环境v非连接环境非连接环境v数据访问模型数据访问模型软件学院软件学院8.4.1 数据存储数据存储v有层次的数据有层次的数据XML XML 文档等文档等v关系型数据库关系型数据库SQL ServerSQL ServerOracleOracleAccessAccessMySQLMySQL软件学院软件学院8.4.2 连接环境连接环境v连接环境是指用户在这种环境下始终保持连接环境是指用户在这种环境下始终保持与数据源的连接与数据源的连接v优点优点环境易于实施安全控制环境易于实施安全控制同步问题易于控制同步问题易于控制数据实
6、时性优于其他环境数据实时性优于其他环境v缺点缺点必须保持持续的网络连接必须保持持续的网络连接扩展性差扩展性差软件学院软件学院8.4.3 非连接环境非连接环境记者记者获取并传输信息获取并传输信息发布信息到互联网发布信息到互联网软件学院软件学院8.4.3 非连接环境非连接环境v中央数据存储的一部分数据可以被独立地复制与中央数据存储的一部分数据可以被独立地复制与更改,在需要时可以与数据源中的数据合并更改,在需要时可以与数据源中的数据合并v优点优点可以在任何需要的时间进行操作,在必要时才可以在任何需要的时间进行操作,在必要时才连接到数据源连接到数据源不独占连接不独占连接非连接环境的应用提高了应用的扩展
7、性与性能非连接环境的应用提高了应用的扩展性与性能v缺点缺点数据不是实时的数据不是实时的必须解决数据的并发性与同步问题必须解决数据的并发性与同步问题软件学院软件学院8.4.4 数据访问模型数据访问模型常见的数据访问模型有常见的数据访问模型有ODBCODBC、RAORAO、RDORDO、OLE DBOLE DB、ADOADO和和ADO.NETADO.NET软件学院软件学院8.5 ADO.NETvADO.NET 是是为 .NET Framework 编程人程人员提供提供数据数据访问服服务的一种的一种对象模型。象模型。vADO.NET包含包含.NET Framework 数据提供程序数据提供程序,用于
8、用于连接各种数据源接各种数据源、执行行查询命令命令以及以及存存储、操作和更新数据操作和更新数据。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型ADO.NET的的类分分为以下两个以下两个组成部分成部分数据提供程序(数据提供程序(Data Provider):用于和真实数据进行沟):用于和真实数据进行沟通。通。数据集(数据集(DataSet):用于表示真实数据。):用于表示真实数据。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序v .NET.NET 数据提供程序的定义数据提供
9、程序的定义数据提供程序是一个类的集合,是数据提供程序是一个类的集合,是 ADO.NET ADO.NET 的核心组件的核心组件数据提供程序用于数据提供程序用于连接到数据库、检索和更连接到数据库、检索和更新数据新数据数据提供程序使数据源和应用程序、数据提供程序使数据源和应用程序、XML Web XML Web ServiceService之间能够进行通信之间能够进行通信软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序.NETFramework数据提供程序数据提供程序描述描述Microsoft SQL Server.NET Framework 数据提供程序数据
10、提供程序对对SQL Server 7.0及更高版本,相关及更高版本,相关类类位位于于System.Data.SqlClient命名空命名空间间OLE DB.NET Framework 数据数据提供程序提供程序相关相关类类位于位于System.Data.OleDb 命名空命名空间间ODBC.NET Framework 数据提数据提供程序供程序相关相关类类位于位于 System.Data.Odbc 命名空命名空间间Oracle.NET Framework 数据提数据提供程序供程序支持支持 Oracle 客客户户机机 V8.1.7 及其后及其后续续版本。版本。相关相关类类位于位于 System.Da
11、ta.OracleClient 命命名空名空间间软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序n .NET 数据提供程序包含的四个核心类数据提供程序包含的四个核心类XxxConnection(如如 SqlConnection)到一个数据源的连接到一个数据源的连接XxxCommand(如如 SqlCommand)在数据源上执行的在数据源上执行的 SQL 语句或者存储过程语句或者存储过程XxxDataReader(如如 SqlDataReader)从数据源中获取只向前的、只读的数据流从数据源中获取只向前的、只读的数据流XxxDataAdapter(如如 S
12、qlDataAdapter)使用使用 XxxCommand 对象操作数据集,更新数据源对象操作数据集,更新数据源软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序 ConnectionConnection对象用来建立与特定数对象用来建立与特定数据源的连接。其属性决定了将要连接的据源的连接。其属性决定了将要连接的数据提供程、数据源和数据库以及连接数据提供程、数据源和数据库以及连接时所使用的字符串。时所使用的字符串。Connection对象对象软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序Command对象对象 Com
13、mandCommand对象用来对数据源执行对象用来对数据源执行SQLSQL命令或存储过程。命令或存储过程。CommandCommand对象支持返对象支持返回单值、单行或多行以及不返回任何值回单值、单行或多行以及不返回任何值的的SQLSQL命令和存储过程。命令和存储过程。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序DataReader对象对象 DataReaderDataReader对象用来从数据源获取对象用来从数据源获取只进、只读的数据流。该对象不能直接只进、只读的数据流。该对象不能直接创建,只能通过调用创建,只能通过调用CommandCommand
14、对象的对象的ExecuteReaderExecuteReader方法来创建。方法来创建。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型数据提供程序数据提供程序DataAdapter对象对象 DataAdapterDataAdapter对象是对象是ConnectionConnection对象对象和数据集之间的桥梁。该对象包括四个和数据集之间的桥梁。该对象包括四个CommandCommand对象:对象:SelectCommandSelectCommand、UpdateCommandUpdateCommand、InsertCommandInsertCommand和和DeleteCo
15、mmandDeleteCommand,其中使用,其中使用SelectCommandSelectCommand来填充数据集。来填充数据集。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型DataSetvDataSetDataSet(数据集数据集)中可以存放数据,并且可以方中可以存放数据,并且可以方便地对其修改、增加或删除,最后把修改后的数便地对其修改、增加或删除,最后把修改后的数据传回相关联的数据库据传回相关联的数据库vDataSetDataSet与数据库本身相比与数据库本身相比,可能不能存储那么可能不能存储那么多的数据多的数据,也可能不便于查询,但可以在脱机环也可能不便于查询,
16、但可以在脱机环境中很好地工作。境中很好地工作。软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型DataSet软件学院软件学院8.5.1 ADO.NET2.0对象模型对象模型DataSetDataSet对象包含一个或多个表,每个表都分别对象包含一个或多个表,每个表都分别由一个由一个DataTable对象表示。对象表示。软件学院软件学院8.5.2 数据访问基本步骤数据访问基本步骤v创建连接创建连接v打开连接打开连接v数据访问处理数据访问处理v关闭连接关闭连接软件学院软件学院8.5.2 数据访问基本步骤数据访问基本步骤创建连接创建连接v连接字符串是包含数据接字符串是包含数据连接参数的
17、一个字符串,用于定接参数的一个字符串,用于定义对数据源的数据源的连接接v连接字符串中包含的参数,重要的有接字符串中包含的参数,重要的有Provider 连接所用的数据提供程序的种接所用的数据提供程序的种类Data Source 要要连接的接的 SQL Server 的名称的名称Initial Catalog 要要连接的数据接的数据库的名称的名称Integrated Security 使用使用 Windows 验证确定用确定用户权限限User ID/Password SQL Server登登录名称和密名称和密码连接字符串连接字符串软件学院软件学院8.5.2 数据访问基本步骤数据访问基本步骤创建连
18、接创建连接v使用使用连接字符串定接字符串定义连接的基本方法接的基本方法 /定定义连接字符串接字符串 String conStr=“”;/定定义连接接 SqlConnection cn=new SqlConnection(conStr);(cn是定是定义完成的完成的连接接对象)象)软件学院软件学院8.5.2 数据访问基本步骤数据访问基本步骤管理连接管理连接主要方法有主要方法有Open()方法、方法、Close()方法和方法和Dispose()方法方法 Open()方法利用方法利用ConnectionString属性的信息属性的信息来来连接数据源并打开连接连接数据源并打开连接。1Close()方法
19、关方法关闭连闭连接。在使用完接。在使用完连连接后,接后,显显式式地关地关闭连闭连接是非常必要的接是非常必要的。2Dispose()方法用来方法用来释释放正在由放正在由SqlConnection对对象所使用象所使用的的资资源源。3软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据v创建连接创建连接v打开连接打开连接v使用连接创建命令对象使用连接创建命令对象v执行命令执行命令v处理数据处理数据v关闭连接关闭连接软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据创建命令对象创建命令对象vADO.NET中命令中命令对象可以使用象可以使用Command对象:包含要对数据库执行对象:包
20、含要对数据库执行的的SQL命令命令 v创建方法建方法为SqlCommand com=cn.CreateCommand();软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据创建命令对象创建命令对象Command对象的常见属性对象的常见属性属性属性描述描述CommandText要要对对数据源数据源执执行的行的SQL 语语句或存句或存储过储过程程CommandType指示如何解指示如何解释释 CommandText 属性,默属性,默认值认值是是TextConnectionCommand对对象所要使用的象所要使用的Connection软件学院软件学院8.5.3 连接环境访问数据连接环境访问
21、数据创建命令对象创建命令对象Command对象的常见属性对象的常见属性vCommandType属性属性经常有两种常有两种设置置 Text 使用的命令文本,默认值使用的命令文本,默认值StoredProcedure 使用存储过程使用存储过程软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据创建命令对象创建命令对象vCommandText属性可以有两种设置 命令文本命令文本存储过程的名字存储过程的名字若是存储过程的名字,必须设置若是存储过程的名字,必须设置CommandTypeCommand对象的常见属性对象的常见属性软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据执行命令执
22、行命令方法方法描述描述ExecuteScalar()执执行命令并返回行命令并返回查询结查询结果集中第一果集中第一行的第一列。忽略行的第一列。忽略额额外的列或行外的列或行ExecuteNonQuery()执执行命令并返回受影响的行数行命令并返回受影响的行数ExecuteReader()执执行命令并返回一个行命令并返回一个DataReader对对象象常见的执行命令常见的执行命令软件学院软件学院8.5.3 连接环境访问数据连接环境访问数据执行命令执行命令常见的执行命令常见的执行命令vDataReader对象从象从Command对象中返回一象中返回一个只个只进的只的只读数据流。在使用数据流。在使用Da
23、taReader对象象时,在任何,在任何给定定时刻内存中只有一行刻内存中只有一行数据,大大减少了系数据,大大减少了系统开开销。软件学院软件学院8.5.4 非连接环境访问数据非连接环境访问数据v创建连接创建连接v打开连接打开连接v使用连接创建命令对象使用连接创建命令对象v创建数据适配器创建数据适配器v填充填充DataSetDataSetv关闭连接关闭连接v处理处理DataSetDataSet中数据中数据v打开连接打开连接v更新更新DataSetDataSetv关闭连接关闭连接软件学院软件学院8.5.4 非连接环境访问数据非连接环境访问数据在在ADO.NET中,中,DataSet是数据在内存中的表
24、示是数据在内存中的表示形式,它提供了独立于数据源的形式,它提供了独立于数据源的编编程模型。程模型。软件学院软件学院8.5.4 非连接环境访问数据非连接环境访问数据创建数据适配器创建数据适配器SqlDataAdapter 构造函数支持四种重载构造函数支持四种重载SqlDataAdapter():设置:设置SqlDataAdapter的一个空实例的一个空实例 SqlDataAdapter dataAdapter=new SqlDataAdapter(testCommand);SqlDataAdapter(string commandText,SqlConnection connection):Sq
25、lDataAdapter(string commandText,string connectionString):软件学院软件学院8.5.4 非连接环境访问数据非连接环境访问数据创建数据适配器创建数据适配器使用使用DataAdapter的的Fill()方法填充方法填充DataSetDataAdapter有两个重要的方法:有两个重要的方法:Fill()和和Update()。前者从数据源把数据加载至。前者从数据源把数据加载至DataSet,后者把数,后者把数据从据从DataSet传回数据源。传回数据源。使用使用 DataAdapter的的Update()方法方法更新更新DataSet软件学院软件学院小小 结v数据访问方式包括连接环境和非连接环境数据访问方式包括连接环境和非连接环境v数据提供程序对应的访问方式数据提供程序对应的访问方式v连接对象的创建、打开和关闭连接对象的创建、打开和关闭v命令对象的相关属性设置命令对象的相关属性设置v可以使用存储过程实现对数据的访问可以使用存储过程实现对数据的访问vDataSetDataSet是内存中的数据存储结构与数据库类似是内存中的数据存储结构与数据库类似v数据适配器可以填充数据也可以更新数据数据适配器可以填充数据也可以更新数据L/O/G/O下次课程内容下次课程内容查询优化查询优化
限制150内