Web开发实用教程 第九章_第1页
Web开发实用教程 第九章_第2页
Web开发实用教程 第九章_第3页
Web开发实用教程 第九章_第4页
Web开发实用教程 第九章_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

1、大连理工大学出版社大连理工大学出版社Web开发实用教程开发实用教程第第9章章 ASP.NET数据库操作数据库操作第第9章章 ASP.NET数据库操作数据库操作v本章概述本章概述 ASP.NETASP.NET数据库应用的开发采用功能丰富的数据库应用的开发采用功能丰富的ADO.NET(ActiveX Data ADO.NET(ActiveX Data Object.NET)Object.NET)技术,技术,ADO.NETADO.NET是是.NET.NET框架的一部分,通过它可以快捷方便的地框架的一部分,通过它可以快捷方便的地进行数据库访问操作。进行数据库访问操作。 本章在讲解关系数据库与本章在讲解

2、关系数据库与SQLSQL基本语句的基础上,详细讲解了基本语句的基础上,详细讲解了ADO.NETADO.NET中中几个对象的使用方法及数据绑定操作。最后通过一个留言本的案例综合演示几个对象的使用方法及数据绑定操作。最后通过一个留言本的案例综合演示了了ASP.NETASP.NET进行数据库开发的步骤以及基本方法。进行数据库开发的步骤以及基本方法。第第9章章 ASP.NET数据库操作数据库操作v学习目标学习目标 1 1掌握掌握SQLSQL基本操作语句(基本操作语句(SELECTSELECT、INSERTINSERT、DELETEDELETE、UPDATEUPDATE)的用法;)的用法; 2 2了解了

3、解ADO.NETADO.NET的常用对象;的常用对象; 3 3能熟念使用数据绑定控件及能熟念使用数据绑定控件及C#C#编程操作数据库。编程操作数据库。9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述1. 1. 关系数据库关系数据库 用二维表结构来表示实体及实体间联系的模型称为关系模型用二维表结构来表示实体及实体间联系的模型称为关系模型(Relational (Relational Mondel)Mondel)。基于。基于关系模型关系模型建立的数据库即称为关系型数据库。常用的建立的数据库即称为关系型数据库。常用的ORACLEORACLE、SQL SERVERSQL SER

4、VER、ACCESSACCESS等数据库都属于关系型数据库。等数据库都属于关系型数据库。 在关系型数据库的二维表结构中,每一行称为一条记录,用来描述一个在关系型数据库的二维表结构中,每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性。对象的信息;每一列称为一个字段,用来描述对象的一个属性。9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述1. 1. 关系数据库关系数据库关系型数据库的内部结构有以下特点:关系型数据库的内部结构有以下特点: 数据表通常是一个由行和列组成的二维表,每一个数据表分别说明数据数据表通常是一个由行和列组成的二维表,

5、每一个数据表分别说明数据库中某一特定的方面或部分的对象及其属性。库中某一特定的方面或部分的对象及其属性。 数据表中的行通常叫做记录或元组,它代表众多具有相同属性的对象中的数据表中的行通常叫做记录或元组,它代表众多具有相同属性的对象中的一个一个。 数据表中的列通常叫做字段或属性,它代表相应数据库中存储对象的共有数据表中的列通常叫做字段或属性,它代表相应数据库中存储对象的共有属性。属性。9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述1. 1. 关系数据库关系数据库 关系型数据库数据表之间的关联实际上是通过关系型数据库数据表之间的关联实际上是通过键键(KeyKey)来实现的

6、。所)来实现的。所谓的谓的“键键”是指数据表的一个字段,键分为主键(是指数据表的一个字段,键分为主键(Primary KeyPrimary Key)和外键)和外键(Foreign KeyForeign Key)两种,它们都在数据表连接的过程中起着重大的作用。)两种,它们都在数据表连接的过程中起着重大的作用。 主键主键(Primary KeyPrimary Key):是数据表中具有唯一性的字段,也就是说数据表):是数据表中具有唯一性的字段,也就是说数据表中任意两条记录都不可能拥有相同的主键字段。中任意两条记录都不可能拥有相同的主键字段。 外键外键(Foreign KeyForeign Key):

7、一个数据表将使用该数据表中的外键连接到其他):一个数据表将使用该数据表中的外键连接到其他的数据表,而这个外键字段在其他的数据表中将作为主键字段出现。的数据表,而这个外键字段在其他的数据表中将作为主键字段出现。9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述2.2. SQLSQL概述概述 SQL SQL是是Structured Query Language(Structured Query Language(结化查询语言)的缩写,它包括结化查询语言)的缩写,它包括定义定义、查询查询、操纵操纵和和控制控制关系数据库四个部分,是一种功能强大、使用方便的数据关系数据库四个部分,

8、是一种功能强大、使用方便的数据库语言。由于库语言。由于SQLSQL接近于英语自然语言,简洁易学,功能丰富,使用灵活,受接近于英语自然语言,简洁易学,功能丰富,使用灵活,受到广泛的支持。经不断发展完善和扩充,到广泛的支持。经不断发展完善和扩充,19861986年年1010月月SQLSQL被美国国家标准局被美国国家标准局(ANSI)(ANSI)确定为关系型数据库语言的美国标准,确定为关系型数据库语言的美国标准,19871987年年6 6月月SQLSQL又被国际标准化又被国际标准化组织组织(ISO)(ISO)采纳为关系型数据库语言的国际标准。目前,所有生产厂商的数据采纳为关系型数据库语言的国际标准。

9、目前,所有生产厂商的数据库管理系统都支持库管理系统都支持SQLSQL,比如,比如SQL ServerSQL Server、DB2DB2、ORACLEORACLE、SybaseSybase、InformixInformix等。等。9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述2.2. SQLSQL概述概述 与与C C、JAVAJAVA等强调流程控制与函数功能的程序设计语言不同,等强调流程控制与函数功能的程序设计语言不同,SQLSQL强调的强调的不是强大的程序结构和自定义函数等功能,它是一门不是强大的程序结构和自定义函数等功能,它是一门数据库操纵数据库操纵语言。语言。SQ

10、LSQL的的功能主要包括以下几部分:功能主要包括以下几部分: DMLDML(Data Manipulation LanguageData Manipulation Language,数据操作语言):用于检索或者,数据操作语言):用于检索或者修改数据修改数据 DDLDDL(Data Definition LanguageData Definition Language,数据定义语言):,数据定义语言): 用于定义数据的用于定义数据的结构,比如结构,比如 创建、修改或者删除数据库对象创建、修改或者删除数据库对象 DCLDCL(Data Control LanguageData Control La

11、nguage,数据控制语言):用于定义数据库用户,数据控制语言):用于定义数据库用户的权限的权限9.1 SQL基础基础9.1.1 关系数据库与关系数据库与SQL概述概述2.2. SQLSQL概述概述DML命令语句及功能说明命令语句及功能说明 语语 句句说说 明明SELECTSELECT用于查询数据库中的数据用于查询数据库中的数据INSERTINSERT用于增加数据到数据库用于增加数据到数据库UPDATEUPDATE用于从数据库中修改现存的数据用于从数据库中修改现存的数据DELETEDELETE用于从数据库中删除数据用于从数据库中删除数据9.1 SQL基础基础9.1.1 关系数据库与关系数据库与

12、SQL概述概述2.2. SQLSQL概述概述DML命令语句及功能说明命令语句及功能说明 语语 句句说说 明明CREATE TABLECREATE TABLE用于创建表结构用于创建表结构ALTER TABLEALTER TABLE用于修改表结构用于修改表结构DROP TABLEDROP TABLE用于从数据库中删除表用于从数据库中删除表CREATE INDEXCREATE INDEX创建表的索引创建表的索引DROP INDEXDROP INDEX删除表的索引删除表的索引9.1 SQL基础基础9.1.2 SELECT SELECT SELECT语句是语句是SQLSQL中中DMLDML语句命令最核心

13、、功能最强大的语句。在数据库语句命令最核心、功能最强大的语句。在数据库应用中,最常用的操作就是应用中,最常用的操作就是查询查询。SELECTSELECT语句与各类语句与各类SQLSQL子句结合可以完成各子句结合可以完成各类复杂的查询操作。类复杂的查询操作。 SELECT SELECT语句用于查询数据库并检索匹配你指定条件的选择数据。语句用于查询数据库并检索匹配你指定条件的选择数据。SELECTSELECT语句有五个主要的子句可以选择,而语句有五个主要的子句可以选择,而FROMFROM是唯一必须的子句。是唯一必须的子句。其主要的子句归纳如下:其主要的子句归纳如下:SELECT ALL | DIS

14、TINCT column1,column2SELECT ALL | DISTINCT column1,column2FROM table1,table2FROM table1,table2WHERE search_conditionWHERE search_conditionGROUP BY group_by_expressionGROUP BY group_by_expressionHAVING search_conditionHAVING search_conditionORDER BY order_expression ASCORDER BY order_expression ASC |

15、 DESC9.1 SQL基础基础9.1.2 SELECT SELECT后指定查询需要返回的数据表列名,默认为后指定查询需要返回的数据表列名,默认为ALL关键字,关键字,DISTINCT关关键字的作用是在查询结果中去掉重复的数据。键字的作用是在查询结果中去掉重复的数据。FROM子句为子句为SELECT语句必须的子语句必须的子句,它指定从其中检索数据的数据表或数据视图,即查询结果的来源。句,它指定从其中检索数据的数据表或数据视图,即查询结果的来源。 实例实例9-1:FROM子句子句 u 查询新闻表里的所有新闻信息的查询新闻表里的所有新闻信息的SQL语句为:语句为: SELECT * FROM T_

16、News; (其中(其中*表示返回所有列)表示返回所有列)9.1 SQL基础基础9.1.2 SELECT WHERE子句指定用于限制查询返回的数据的查询条件。子句指定用于限制查询返回的数据的查询条件。 实例实例9-2:WHERE子句子句u 查询新闻表里新闻类别查询新闻表里新闻类别ID为为1的新闻标题、新闻内容和添加时间的的新闻标题、新闻内容和添加时间的SQL语句为:语句为: SELECT Title,Content,AddTime FROM T_News WHERE ClassID=1;实例实例9-3:GROUP BY子句与子句与HAVING子句子句 GROUP BY子句用于按指定的数据列进行

17、分组;子句用于按指定的数据列进行分组;HAVING子句通常与子句通常与GROUP BY子句一起使用,用于指定组或聚合的过滤条件。它们通常与子句一起使用,用于指定组或聚合的过滤条件。它们通常与SQL聚合函数一起使用。聚合函数一起使用。9.1 SQL基础基础9.1.2 SELECTu 假设我们的假设我们的employee表中包含雇员的表中包含雇员的name、departmen、salary和和age。如果你想。如果你想为每个部门中每个雇员选择平均工资,并且你还想只计算和显示为每个部门中每个雇员选择平均工资,并且你还想只计算和显示salary大于大于20000的平的平均工资。均工资。 SELECT

18、dept, avg(salary) FROM employee GROUP BY dept; SELECT dept, avg(salary) FROM employee GROUP BY dept HAVING avg(salary) 20000;实例实例9-4: ORDER BY子句子句 ORDER BY子句用于对查询的结果排序,子句用于对查询的结果排序,ASC指定按递增顺序排序,指定按递增顺序排序,DESC指定指定按递减顺序排序。按递减顺序排序。 u 查询新闻表中最新的新闻,以发布时间倒序排列的查询新闻表中最新的新闻,以发布时间倒序排列的SQL语句为:语句为: SELECT * FROM

19、 T_News ORDER BY AddTime DESC;9.1 SQL基础基础9.1.3 INSERTINSERTINSERT语句用于为数据表语句用于为数据表增加增加一条或多条数据。它的语法格式为:一条或多条数据。它的语法格式为: INSERT INTO table_name(first_column,.last_column) INSERT INTO table_name(first_column,.last_column) VALUES(first_value,.last_value) VALUES(first_value,.last_value) 当执行当执行INSERTINSERT

20、语句时,语句时,VALUESVALUES后的数据值必须与插入表的列相匹配。包后的数据值必须与插入表的列相匹配。包括数据值的数目必须与列数相同,每个数据值的数据类型、精度和小数位数括数据值的数目必须与列数相同,每个数据值的数据类型、精度和小数位数也必须与相应的列匹配,如果插入的数据与约束或规则的要求产生冲突或值也必须与相应的列匹配,如果插入的数据与约束或规则的要求产生冲突或值的数据类型与列的数据类型不匹配,则的数据类型与列的数据类型不匹配,则INSERTINSERT执行失败。注意执行失败。注意SQLSQL中字符串中字符串必须用必须用单引号单引号括起来。括起来。9.1 SQL基础基础9.1.3 I

21、NSERTu 向数据表向数据表T_News插入一条数据。插入一条数据。 INSERT INTO T_News(Title,Content,ClassId,AddTime) VALUES(国内新闻标题国内新闻标题,新闻内容新闻内容,1,2010-2-28);实例实例9-59.1 SQL基础基础9.1.4 DELETE DELETE DELETE语句的功能是从数据表中语句的功能是从数据表中删除行删除行,其语法格式为:,其语法格式为: DELETE FROM table_name WHERE search_conditions DELETE FROM table_name WHERE search_

22、conditions 用于从表中删除满足条件的行,若省略用于从表中删除满足条件的行,若省略WHERE子句中的条件,则表示删子句中的条件,则表示删除所有行。除所有行。 实例实例9-6 u 从数据表从数据表T_News中删除新闻类别为中删除新闻类别为1的行的行 DELETE FROM T_News WHERE ClassId=1; 9.1 SQL基础基础9.1.5 UPDATEUPDATEUPDATE语句的功能是语句的功能是修改修改数据表中的数据行,其语法格式为:数据表中的数据行,其语法格式为: UPDATE table_name UPDATE table_name SET column1=exp

23、ression|DEFAULT|NULL,columnN SET column1=expression|DEFAULT|NULL,columnN WHERE search_conditions WHERE search_conditions 用于修改指定表满足条件的行中指定列的值。需修改的列的值由用于修改指定表满足条件的行中指定列的值。需修改的列的值由SETSET指指定,如需修改多个列,则中间用定,如需修改多个列,则中间用逗号逗号隔开。若省略隔开。若省略WHEREWHERE子句中的条件,则子句中的条件,则表示修改所有数据行中指定列的值。表示修改所有数据行中指定列的值。实例实例9-7 u 将新闻

24、表将新闻表T_NewsT_News中所有类别中所有类别IDID为为1 1的新闻的类别的新闻的类别IDID都修改为都修改为2 2: UPDATE T_News SET ClassId=2 WHERE ClassId=1 UPDATE T_News SET ClassId=2 WHERE ClassId=1;9.1 SQL基础基础9.1.6 存储过程存储过程 存储过程(存储过程(Stored Procedure)是一组为了完成特定功能的)是一组为了完成特定功能的SQL语句集,语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该经编译后存储在数据库。用户通过指定存储过程的名字并

25、给出参数(如果该存储过程带有参数)来执行它。在存储过程带有参数)来执行它。在SQL Server的系列版本中存储过程分为两的系列版本中存储过程分为两类:类:系统提供的存储过程系统提供的存储过程和和用户自定义存储过程用户自定义存储过程。系统存储过程主要存储在。系统存储过程主要存储在master数据库中并以数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信为前缀,并且系统存储过程主要是从系统表中获取信息,而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动息,而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。用户自定义存储过程是由用户创建并能完成某一特定功

26、能(如查询用创建。用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。户所需数据信息)的存储过程。 9.1 SQL基础基础9.1.6 存储过程存储过程下面是下面是SQL中创建存储过程的基本语法:中创建存储过程的基本语法: CREATE PROC EDURE procedure_name parameter data_type = default OUTPUT ,.n AS sql_statement .n 9.1 SQL基础基础9.1.6 存储过程存储过程 存储过程创建语句各参数含义说明存储过程创建语句各参数含义说明 参参 数数说说 明明procedure_

27、nameprocedure_name要创建的存储过程名称,必须是当前数据库中唯一的要创建的存储过程名称,必须是当前数据库中唯一的parameterparameter存储过程的参数。用户必须在执行过程时提供每个所声存储过程的参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。明参数的值(除非定义了该参数的默认值)。data_typedata_type参数的数据类型,可以利用参数的数据类型,可以利用DEFAULTDEFAULT指出参数的默认值;指出参数的默认值;可以利用可以利用OUTPUTOUTPUT表明该参数是一个返回参数表明该参数是一个返回参数ASAS指明该存储过程将

28、要执行的动作指明该存储过程将要执行的动作sql_statementsql_statement包含在存储过程任何数量和类型的包含在存储过程任何数量和类型的SQLSQL语句语句9.1 SQL基础基础9.1.6 存储过程存储过程 在在WEB开发中使用存储过程主要有两大好处:第一是可以开发中使用存储过程主要有两大好处:第一是可以加快程序执行加快程序执行速度速度,因为存储过程由数据库批量执行,减少了对数据库连接,并会被数据,因为存储过程由数据库批量执行,减少了对数据库连接,并会被数据库优化。另外当客户端调用存储过程时,只需要传输该调用语句及参数,而库优化。另外当客户端调用存储过程时,只需要传输该调用语句

29、及参数,而不是传输多条不是传输多条SQL语句,因此减少了网络传输流量;第二是语句,因此减少了网络传输流量;第二是增强安全性增强安全性,开,开发人员可以对存储过程进行有效权限限制。另外存储过程采用参数化的传输发人员可以对存储过程进行有效权限限制。另外存储过程采用参数化的传输方式,可以有效地防止方式,可以有效地防止SQL注入式攻击。注入式攻击。 9.1 SQL基础基础9.1.6 存储过程存储过程实例实例9-8 u 从数据表从数据表T_News中删除指定新闻类别的行的存储过程中删除指定新闻类别的行的存储过程 CREATE PROCEDURE DelNews CREATE PROCEDURE DelN

30、ews nid int nid int AS AS DELETE FROM T_News WHERE ClassId=nid; DELETE FROM T_News WHERE ClassId=nid; GO GO9.1 SQL基础基础9.1.7 数据库设计实例数据库设计实例 数据库设计可采用数据库设计可采用E-R(E-R(实体实体- -联系联系) )分析方法,分析方法,E-RE-R分析结果直观易懂,容分析结果直观易懂,容易转化为数据库表,它的主导思想是使用实体(易转化为数据库表,它的主导思想是使用实体(EntityEntity)实体的属性)实体的属性(AttributionAttributi

31、on)以及实体之间的关系()以及实体之间的关系(RelationshipRelationship)来表示数据库系统)来表示数据库系统的结构。的结构。 在在E-RE-R图方法中,使用图方法中,使用矩形矩形表示表示实体实体,使用,使用椭圆形椭圆形表示表示属性属性,菱形菱形和和箭头箭头表示表示联系联系。9.1 SQL基础基础9.1.7 数据库设计实例数据库设计实例将一名学生作为实体表示将一名学生作为实体表示 例例 在完成了在完成了E-R图以后,就可以将图以后,就可以将E-R图转换为真正的数据表结构。图转换为真正的数据表结构。在在E-R图向数据表转换过程中,首图向数据表转换过程中,首先需要将实体转换为

32、一个独立的数先需要将实体转换为一个独立的数据表,然后将实体的属性转换为数据表,然后将实体的属性转换为数据表中的字段,最后根据实体之间据表中的字段,最后根据实体之间的关系建立数据表。的关系建立数据表。9.1 SQL基础基础9.1.7 数据库设计实例数据库设计实例学生表结构设计学生表结构设计字字 段段数据类型数据类型是否主键是否主键说说 明明Stu_IDStu_IDVarchar(20)Varchar(20)是是学生学号作为主键学生学号作为主键唯一标识一名学生唯一标识一名学生Stu_NameStu_NameVarchar(50)Varchar(50)否否学生姓名学生姓名Stu_SexStu_Sex

33、Varchar(2)Varchar(2)否否学生性别(男学生性别(男/ /女)女)Stu_ClassStu_ClassVarchar(20)Varchar(20)否否学生班级学生班级9.2 ASP.NET操作数据库操作数据库9.2.1 ASP.NET数据库访问概述数据库访问概述 ASP.NET ASP.NET访问数据库的技术是基于访问数据库的技术是基于.Net Framework.Net Framework框架的框架的AD0.NETAD0.NET技术,技术,ADO.NET (ActiveX Data Object.NET)ADO.NET (ActiveX Data Object.NET)是是M

34、icrosoftMicrosoft公司开发的用于数据库连公司开发的用于数据库连接的一套组件模型,是接的一套组件模型,是ADOADO的升级版本。的升级版本。 由于由于ADO.NETADO.NET组件模型很好地融入了组件模型很好地融入了.NET Framework.NET Framework有非常好的兼容性与高有非常好的兼容性与高效性。程序员能使用效性。程序员能使用ADO.NETADO.NET组件模型,方便高效地连接和访问数据库。组件模型,方便高效地连接和访问数据库。 它是与数据库访问操作有关的对象模型的集合,它基于它是与数据库访问操作有关的对象模型的集合,它基于MicrosoftMicrosof

35、t的的.NET .NET FrameworkFramework,在很大程度上封装了数据库访问和数据操作的动作。,在很大程度上封装了数据库访问和数据操作的动作。9.2 ASP.NET操作数据库操作数据库9.2.1 ASP.NET数据库访问概述数据库访问概述ADO.NETADO.NET同其前身同其前身ADOADO系列访问数据库的组件相比,做了以下两点重要改进:系列访问数据库的组件相比,做了以下两点重要改进: ADO.NET ADO.NET引入了引入了离线的数据结果集离线的数据结果集(Disconnected DataSet)(Disconnected DataSet)这个概念,通这个概念,通过使用

36、离线的数据结果集,程序员便可以在数据库断开的情况下访问数据库。过使用离线的数据结果集,程序员便可以在数据库断开的情况下访问数据库。 ADO.NET ADO.NET还提供了对还提供了对XMLXML格式文档格式文档的支持,所以通过的支持,所以通过ADO.NETADO.NET组件可以方便组件可以方便地在异构环境的项目间读取和交换数据。地在异构环境的项目间读取和交换数据。9.2 ASP.NET操作数据库操作数据库9.2.1 ASP.NET数据库访问概述数据库访问概述 ADO.NET ADO.NET对象模型主要包括以下两个部分:一个是对象模型主要包括以下两个部分:一个是.NET.NET数据提供程序数据提

37、供程序,它,它能与数据源连接,并执行针对数据源的能与数据源连接,并执行针对数据源的SQLSQL命令,它又包括命令,它又包括ConnectionConnection对象、对象、CommandCommand对象、对象、DataReaderDataReader对象和对象和DataAdapterDataAdapter对象对象4 4部分。常用的部分。常用的.NET.NET数据数据提供程序有三种,即提供程序有三种,即SQL SERVERSQL SERVER数据提供程序、数据提供程序、OLE DBOLE DB数据源提供程序及数据源提供程序及ODBCODBC兼容数据源提供程序,所有数据提供程序都在兼容数据源提

38、供程序,所有数据提供程序都在System.DataSystem.Data命名空间中;命名空间中;另一个是另一个是数据集数据集(DataSetDataSet),与数据源分离且不需要知道所保持数据的来),与数据源分离且不需要知道所保持数据的来源,将数据保存在内存中。源,将数据保存在内存中。9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NET ADO.NET(ActiveX Data Objects.NET) ADO.NET(ActiveX Data Objects.NET)是是.NET Framework.NET Framework的重要组成部分,的重要组成部分,ASP.NETAS

39、P.NET使用使用ADO.NETADO.NET可以快捷地访问数据库。可以快捷地访问数据库。 A A利用利用ADO.NETADO.NET进行数据库操作的一般流程是:进行数据库操作的一般流程是: 第一步第一步:创建数据库;:创建数据库; 第二步第二步:使用:使用ConnectionConnection对象创建到数据库的链接;对象创建到数据库的链接; 第三步第三步:操作数据库,包括:操作数据库,包括(1)(1)使用使用CommandCommand对象对数据源执行对象对数据源执行SQLSQL命令或命令或存储过程并返回数据;存储过程并返回数据;(2)(2)利用利用DataReaderDataReader

40、对象或对象或DataSetDataSet对象读取和处理返回对象读取和处理返回的数据;的数据; 第四步第四步:关闭数据库连接,释放资源。:关闭数据库连接,释放资源。9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NET Connection对象用来创建到数据库的链接,它的对象用来创建到数据库的链接,它的ConnectionString属性常用属性常用参数及说明见下表。参数及说明见下表。 1.数据库连接对象数据库连接对象Connection 参参 数数说说 明明Data SourceData Source要连接到的要连接到的SQL ServerSQL Server数据库服务器名称或者

41、数据库服务器名称或者IPIP地址地址Initial CatalogInitial Catalog设置要连接的数据库名称设置要连接的数据库名称User IDUser ID访问访问SQL ServerSQL Server数据库的帐号数据库的帐号PasswordPassword访问访问SQL ServerSQL Server数据库的密码数据库的密码9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETConnectionConnection对象的常用方法主要有:对象的常用方法主要有:v Open()Open()方法方法: :打开数据库连接,打开数据库连接,ConnectionStrin

42、gConnectionString属性只是设置了数据库属性只是设置了数据库访问的链接字符串,并没有打开数据库,必须通过此方法来打开。访问的链接字符串,并没有打开数据库,必须通过此方法来打开。v Close()Close()方法方法:关闭数据库,数据源使用完后必须关闭数据库连接,以释:关闭数据库,数据源使用完后必须关闭数据库连接,以释放内存资源。放内存资源。1.数据库连接对象数据库连接对象Connection 数据库连接的创建方法为:数据库连接的创建方法为: SqlConnection cn=new SqlConnection( SqlConnection cn=new SqlConnectio

43、n(数据库连接字符串数据库连接字符串);); cn.Open(); cn.Open(); cn.Close(); cn.Close();9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NET Command Command对象的对象的ExecuteExecute方法可以执行方法可以执行SQLSQL指令并返回数据。其创建方法为:指令并返回数据。其创建方法为: SqlCommand cmd=new SqlCommand(cmdText,connection); SqlCommand cmd=new SqlCommand(cmdText,connection); 其中其中cmdText

44、cmdText指定要执行的指定要执行的SQLSQL命令语句,命令语句,connectionconnection为数据库连接对象。这两为数据库连接对象。这两个参数在创建的时候也可以省略,创建之后再通过个参数在创建的时候也可以省略,创建之后再通过SqlCommandSqlCommand对象的对象的CommandTextCommandText属性设置属性设置SQLSQL命令语句、命令语句、ConnectionConnection属性设置数据库连接对象。属性设置数据库连接对象。2. SQL命令执行器对象命令执行器对象Command 9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETC

45、ommandCommand对象的方法常用的主要有以下几个:对象的方法常用的主要有以下几个:v Cancel()Cancel(): :取消执行取消执行CommandCommand对象;对象;v ExecuteReader()ExecuteReader(): :执行执行CommandTextCommandText属性中的属性中的SQLSQL语句并创建语句并创建DataReaderDataReader对象,对象,返回数据集合存储于返回数据集合存储于DataReaderDataReader对象中;对象中;v ExecuteScalar()ExecuteScalar(): :执行执行CommandTex

46、tCommandText属性设置的属性设置的SQLSQL语句并返回首行首列的数据,语句并返回首行首列的数据,此方法常用于执行此方法常用于执行SelectSelect命令需返回单个数据的情况;命令需返回单个数据的情况;v ExecuteNonQuery()ExecuteNonQuery():执行执行CommandText属性设置的属性设置的SQL语句只返回影响的数语句只返回影响的数据行数,此方法常用于执行据行数,此方法常用于执行Update、Insert、Delete等数据更新插入删除操作。等数据更新插入删除操作。 2. SQL命令执行器对象命令执行器对象Command 9.2 ASP.NET操

47、作数据库操作数据库9.2.2 ADO.NET DataReader DataReader对象数据读取的特点是能够对象数据读取的特点是能够快速快速、向前向前、只读只读地访问数据源,地访问数据源,每次在内存中就处理一条数据,因此使用每次在内存中就处理一条数据,因此使用DataReaderDataReader提高应用程序的性能,提高应用程序的性能,减少系统的开销。减少系统的开销。3.数据读取器对象数据读取器对象DataReader DataReader DataReader的创建方法为:的创建方法为: SqlDataReader sdr=cmd.ExecuteReader();cmd SqlData

48、Reader sdr=cmd.ExecuteReader();cmd为为CommandCommand对象。对象。 DataReader DataReader常用的属性有常用的属性有IsClosedIsClosed,用来判断,用来判断DataReaderDataReader是否处于关闭是否处于关闭状态,状态,TrueTrue表示关闭状态,反之为打开状态。表示关闭状态,反之为打开状态。9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETDataReaderDataReader常用的方法有:常用的方法有:v Close()Close(): :关闭关闭DataReaderDataRea

49、der对象,用完之后一定要关闭,节省资源;对象,用完之后一定要关闭,节省资源;v GetValue(int)GetValue(int): :获取第获取第int+1int+1列的内容;列的内容;v Read()Read(): :读取下一条数据并返回布尔值,读取下一条数据并返回布尔值,TrueTrue表示还有下一条数据,表示还有下一条数据,FalseFalse表示没有下一条数据。表示没有下一条数据。3.数据读取器对象数据读取器对象DataReader9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NET DataSet是是ADO.NET的核心组成部分,它通过的核心组成部分,它通过Da

50、taAdapter对象来访问数据库,对象来访问数据库,它使用它使用无连接模式无连接模式访问数据库,数据集访问数据库,数据集DataSet通过数据适配器通过数据适配器DataAdapter将数将数据库表映射到内存中,数据一旦从数据库读取进据库表映射到内存中,数据一旦从数据库读取进DataSet便自动断开连接,结束对便自动断开连接,结束对数据库的锁定。数据库的锁定。 4.数据集对象数据集对象DataSet 避免多个用户对数据库的争夺,其访问数据库的步骤如下:避免多个用户对数据库的争夺,其访问数据库的步骤如下: 第一步第一步:使用:使用Connection对象创建连接;对象创建连接; 第二步第二步:

51、使用:使用DataAdapter对象执行对象执行SQL命令并返回数据集;命令并返回数据集; 第三步第三步:使用:使用DataSet处理返回的数据集结果。处理返回的数据集结果。9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETDataSetDataSet对象由三个集合组成即对象由三个集合组成即TablesTables、RelationsRelations和和ExtendedPeopertiesExtendedPeoperties。4.数据集对象数据集对象DataSet Tables集合集合:DataSet.Tables属性是一个属性是一个DataTableCollection对

52、象,包含对象,包含0个个或多个或多个DataTable对象,分别对应数据源的一个数据表。对象,分别对应数据源的一个数据表。 DataAdapter对象是与对象是与DataSet配合使用用来执行配合使用用来执行SQL命令的对象,它负责命令的对象,它负责处理数据源格式与处理数据源格式与DataSet使用格式之间的转换。它通过使用格式之间的转换。它通过Fill方法把数据源中的表方法把数据源中的表填充到填充到DataSet对象中,在对数据完成添加、删除、或修改操作后再调用对象中,在对数据完成添加、删除、或修改操作后再调用Update方法更新数据源。它的创建方法如下:方法更新数据源。它的创建方法如下:

53、SqlDataAdapter sda=new SqlDataAdapter();9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETDataAdapter对象常用属性及说明对象常用属性及说明 4.数据集对象数据集对象DataSet 属属 性性说说 明明InsertCommandInsertCommand获取或设置用来从数据库插入数据的获取或设置用来从数据库插入数据的SQLSQL命令命令DeleteCommandDeleteCommand获取或设置用来从数据库删除数据的获取或设置用来从数据库删除数据的SQLSQL命令命令SelectCommandSelectCommand获取或设

54、置用来从数据库选取数据的获取或设置用来从数据库选取数据的SQLSQL命令命令UpdateCommandUpdateCommand获取或设置用来从数据库更新数据的获取或设置用来从数据库更新数据的SQLSQL命令命令9.2 ASP.NET操作数据库操作数据库9.2.2 ADO.NETDataAdapterDataAdapter对象的常用方法如下:对象的常用方法如下:v Fill(dataset,srcTable)Fill(dataset,srcTable): :将将SelectCommandSelectCommand属性指定的属性指定的SQLSQL命令返回的结果填命令返回的结果填充至充至DataS

55、etDataSet的的TablesTables集合中,参数集合中,参数datasetdataset为要填充的为要填充的DataSetDataSet对象,参数对象,参数srcTablesrcTable指定数据库对应的数据来源表的名称。指定数据库对应的数据来源表的名称。v Update(dataset,srcTable) Update(dataset,srcTable): :调用调用InsertCommandInsertCommand、DeleteCommandDeleteCommand、UpdateCommandUpdateCommand属性指定的属性指定的SQLSQL命令,将命令,将DataS

56、etDataSet对象更新至数据库,参数的含义与对象更新至数据库,参数的含义与FillFill方法的相同。方法的相同。4.数据集对象数据集对象DataSet 9.2 ASP.NET操作数据库操作数据库9.2.3 数据绑定与数据控件数据绑定与数据控件 数据绑定是将数据绑定是将WebWeb控件中用于显示的属性与数据源绑定,从而在控件中用于显示的属性与数据源绑定,从而在WEBWEB上显示上显示数据库的信息。数据库的信息。ASP.NETASP.NET控件既可以绑定简单数据源,也可以绑定复杂的数控件既可以绑定简单数据源,也可以绑定复杂的数据源如据源如DataReaderDataReader、DataSe

57、tDataSet数据集等。数据集等。 绑定到简单的数据源,比如后台代码中定义的公共变量、属性、集合或表达绑定到简单的数据源,比如后台代码中定义的公共变量、属性、集合或表达式等。绑定方法为:式等。绑定方法为: 。1.数据绑定数据绑定 9.2 ASP.NET操作数据库操作数据库9.2.3 数据绑定与数据控件数据绑定与数据控件 后台代码定义后台代码定义2 2个公共变量:个公共变量: public string name = WEBpublic string name = WEB开发教程开发教程; public string writer = public string writer = 张三、李四张

58、三、李四; protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e) Page.DataBind(); Page.DataBind(); 1.数据绑定数据绑定 9.2 ASP.NET操作数据库操作数据库9.2.3 数据绑定与数据控件数据绑定与数据控件 前台的绑定代码为:前台的绑定代码为: 教程名:教程名:asp:Label ID=Label1 runat=server Text=%# name asp:Label ID=Label1 runa

59、t=server Text=% 作者:作者:asp:Label ID=Label2 runat=server Text=%# writer asp:Label ID=Label2 runat=server Text= % 1.数据绑定数据绑定 9.2 ASP.NET操作数据库操作数据库9.2.3 数据绑定与数据控件数据绑定与数据控件 实例实例9-19-1:以之前的新闻表为例,通过后台代码方式绑定数据到:以之前的新闻表为例,通过后台代码方式绑定数据到GridViewGridView控控件,显示新闻列表。件,显示新闻列表。2.数据控件数据控件后台代码:(注意添加后台代码:(注意添加using Sy

60、stem.Data.SqlClient;引用)引用) protected void Page_Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) if (!IsPostBack) BindData(); BindData(); 9.2 ASP.NET操作数据库操作数据库9.2.3 数据绑定与数据控件数据绑定与数据控件 2.数据控件数据控件 private void BindData()private void BindData() SqlCon

温馨提示

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

评论

0/150

提交评论