版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、10 webweb数据库编程数据库编程 第章 本章内容本章内容 10.1 ADO.NET10.1 ADO.NET技术技术 10.2 10.2 数据访问数据访问 10.3 10.3 数据库开发操作技巧数据库开发操作技巧 10.4 10.4 习题习题 10.1 ADO.NET技术技术 v10.1.1 ADO.NET技术概览技术概览 v10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 v10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 v ADO.NET 是是Microsoft公司推出的一种数据访问技术,公司推出的一种数据访问技术, 它基于它基于.NET F
2、ramework,是,是.NET编程环境中优先使用的编程环境中优先使用的 数据访问接口。数据访问接口。 v ADO.NET提供了一组用于和数据源进行交互的面向对象提供了一组用于和数据源进行交互的面向对象 类库。类库。 v ADO.NET即可以实现对各种数据源进行高效访问,也可即可以实现对各种数据源进行高效访问,也可 以对复杂数据进行操作和排序。以对复杂数据进行操作和排序。 10.1.1 ADO.NET技术概览技术概览 v ADO.NET采用了层次管理的结构模型采用了层次管理的结构模型 10.1.1 ADO.NET技术概览技术概览 v ADO.NET 构架由构架由.NET Framework P
3、rovider和和DataSet 两大部分组成。两大部分组成。ADO.NET对象是指包含在对象是指包含在Provider和和 DataSet中的对象。中的对象。 10.1.1 ADO.NET技术概览技术概览 v DataSet对象及其子对象是真正使得对象及其子对象是真正使得ADO.NET与众不同与众不同 的原因。它为离线数据提供了一种存储机制。的原因。它为离线数据提供了一种存储机制。 v Provider中包含许多针对数据源的组件,开发人员通过这中包含许多针对数据源的组件,开发人员通过这 些组件可以使程序与指定的数据源进行连接。些组件可以使程序与指定的数据源进行连接。 10.1.1 ADO.N
4、ET技术概览技术概览 u ConnectionConnection:对象:对象负责建立和保持对数据源的连接,负责建立和保持对数据源的连接, 以及任何连接特有的信息。以及任何连接特有的信息。 u CommandCommand对象:对象:存储将要送往数据源的存储将要送往数据源的SQLSQL语句或存储语句或存储 过程过程 u DataReaderDataReader对象:对象:提供快速、仅前向的读取能力,用提供快速、仅前向的读取能力,用 于快速遍历记录于快速遍历记录 u DataAdapterDataAdapter对象:对象:是连接是连接DataSetDataSet对象和数据源的桥对象和数据源的桥
5、梁;负责从梁;负责从CommandCommand对象检索数据并用返回的数据生成对象检索数据并用返回的数据生成 DataSetDataSet对象;同时也负责将对象;同时也负责将DataSetDataSet对象的改变永久对象的改变永久 性写回数据源性写回数据源 v ADO.NET既能在数据源连接的环境下工作,也能在断开既能在数据源连接的环境下工作,也能在断开 数据源连接的条件下工作。数据源连接的条件下工作。 v ADO.NET可以经数据库内的数据以可以经数据库内的数据以XML(Extensible Makup Language.可扩展标记语言)格式传送到客户端可扩展标记语言)格式传送到客户端 (C
6、lient)的)的DateSet对象中。对象中。 v ADO.NET将存取数据和数据处理分开,达到离线存取数将存取数据和数据处理分开,达到离线存取数 据的目的据的目的 。 10.1.1 ADO.NET技术概览技术概览 v Connection对象的功能是创建与指定数据源的连接,并对象的功能是创建与指定数据源的连接,并 完成初始化工作,它提供了一些属性用来描述数据源和进完成初始化工作,它提供了一些属性用来描述数据源和进 行用户身份验证。行用户身份验证。 v Conncetion对象还提供一些方法允许程序员与数据源建对象还提供一些方法允许程序员与数据源建 立或者断开连接。立或者断开连接。 10.1
7、.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 1. Connection对象概述对象概述 v ADO.NET中提供了一下中提供了一下4种数据库连接对象用于连接到不种数据库连接对象用于连接到不 同类型的数据源。同类型的数据源。 1)要连接到)要连接到Microsoft SQL Server 7.0或更高版本,应使用或更高版本,应使用 SqlConnection对象。对象。 2)要连接到)要连接到OLE DB数据源,或连接到数据源,或连接到Microsoft SQL Server 6.x或更低版本、或连接到或更低版本、或连接到Access,应使用,应使用 OleDbCon
8、nection对象。对象。 3)要连接到)要连接到ODBC数据源,应使用数据源,应使用OdbcConnection对象。对象。 4)要连接到)要连接到Oracle数据源,应使用数据源,应使用OracleConnection对象对象 。 10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 1. Connection对象概述对象概述 v 使用使用Connection对象的构造函数创建对象的构造函数创建SqlConnection对象对象 ,并通过构造函数的参数来设置,并通过构造函数的参数来设置Connection对象的特定属对象的特定属 性值。性值。 10.1.2 SQL
9、 SERVER EXPRESS数据库连接方法数据库连接方法 2. 创建创建Connection对象对象 SqlConnection SqlConnection 连接对象名连接对象名= new = new SqlConnectionSqlConnection(连接字符串);(连接字符串); v 首先使用构造函数创建一个不含参数的首先使用构造函数创建一个不含参数的Connection对象实对象实 例,而后再通过例,而后再通过Connection对象的对象的ConnectionString属属 性,设置连接字符串。性,设置连接字符串。 10.1.2 SQL SERVER EXPRESS数据库连接方法
10、数据库连接方法 2. 创建创建Connection对象对象 SqlConnectionSqlConnection连接对象名连接对象名=new SqlConnection( )=new SqlConnection( ); 连接对象名连接对象名. ConnectionString= . ConnectionString= 连接字符串;连接字符串; 例如:例如:SqlConnection conn = new SqlConnection( );SqlConnection conn = new SqlConnection( ); conn.ConnectionString = conn.Connect
11、ionString = Data Source =Data Source =mjl-pc; mjl-pc; Initial CatalogInitial Catalog=employee;=employee;Intergrated Security Intergrated Security =true=true v Connection对象的属性对象的属性 10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 3. Connection对象的属性和方法对象的属性和方法 属属 性性说说 明明 ConnectionString执行执行Open()方法连接数据源的字符串方法
12、连接数据源的字符串 Connection Timeout尝试建立连接的时间,超过时间则产生异常尝试建立连接的时间,超过时间则产生异常 Database将要打开数据库的名称将要打开数据库的名称 DateSource包含数据库的位置和文件包含数据库的位置和文件 ProviderOLE DB 数据提供程序的名称数据提供程序的名称 ServerVersionOLE DB 数据提供程序提供的服务器版本数据提供程序提供的服务器版本 State显示当前显示当前Connection对象的状态对象的状态 v Connection对象的方法对象的方法 10.1.2 SQL SERVER EXPRESS数据库连接方
13、法数据库连接方法 3. Connection对象的属性和方法对象的属性和方法 方法名称方法名称说明说明 Open()打开一个数据库连接。打开一个数据库连接。 Close()关闭数据库连接。使用该方法关闭一个打开的数关闭数据库连接。使用该方法关闭一个打开的数 据库连接据库连接 Dispose()调用调用Close()方法,与方法,与Close()方法相同。方法相同。 CreateCommand()创建并返回一个与该连接关联的创建并返回一个与该连接关联的SqlCommand对对 象象 ChangeDatabase()改变当前连接的数据库。需要一个有效的数据库改变当前连接的数据库。需要一个有效的数据
14、库 名称。名称。 v Connection对象的方法对象的方法 10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 3. Connection对象的属性和方法对象的属性和方法 方法名称方法名称说明说明 BeginTransaction() 开始一个数据库事务。允许指定事务的名称和隔离开始一个数据库事务。允许指定事务的名称和隔离 级级 GetSchema()检索指定范围(表,数据库)的模式信息,检索指定范围(表,数据库)的模式信息, ADO.NET1.X不支持该方法。不支持该方法。 ResetStastics()复位统计信息服务。复位统计信息服务。ADO.NET1.X
15、不支持该方法。不支持该方法。 RetrieveStastics()获得一个用关于连接的信息进行填充的散列表。获得一个用关于连接的信息进行填充的散列表。 ADO.NET1.X不支持该方法。不支持该方法。 v 为了连接到数据源,需要使用一个提供数据库服务的位置为了连接到数据源,需要使用一个提供数据库服务的位置 、要使用特定的数据库及身份验证等信息的连接字符串。、要使用特定的数据库及身份验证等信息的连接字符串。 v 它由一组分号它由一组分号“;”隔开的隔开的“参数参数=值值”组成。组成。 v 连接字符串中的关键字不区分大小写。连接字符串中的关键字不区分大小写。 10.1.2 SQL SERVER E
16、XPRESS数据库连接方法数据库连接方法 4. 连接字符串连接字符串 v SQL Server的的.NET Framework 数据提供程序,通过数据提供程序,通过 SqlConnection对象的对象的ConnectionString属性,设置或获属性,设置或获 取连接字符串。取连接字符串。 v 有两种连接数据库的方式:有两种连接数据库的方式: 1)标准安全连接也称为非信任连接。它把未登陆账户()标准安全连接也称为非信任连接。它把未登陆账户( User ID或或Uid)和密码()和密码(Password 或或 Pwd)写在连接字符)写在连接字符 串中。串中。 2)信任连接()信任连接(Tru
17、sted Connection)也称)也称“SQL Server集集 成安全性成安全性”,这种连接方式有助于在连接到,这种连接方式有助于在连接到SQL Server时提时提 供安全保护。供安全保护。 10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 4. 连接字符串连接字符串 v 在在ADO.NET中,连接数据库的基本步骤如下:中,连接数据库的基本步骤如下: 创建一个创建一个Connection类的实例,即声明一个新的类的实例,即声明一个新的 Connection对象;对象; 设置设置Connection对象的连接字符串属性对象的连接字符串属性 Connectio
18、nString; 使用使用Open()方法或方法或Close()方法打开或关闭连接。方法打开或关闭连接。 10.1.2 SQL SERVER EXPRESS数据库连接方法数据库连接方法 4. 连接字符串连接字符串 v SQL语言是结构化查询语言,它是一种通用的关系数据库语言是结构化查询语言,它是一种通用的关系数据库 语言。语言。 v SQL语言包括语言包括3个部分:个部分: 数据定义数据定义 数据操作数据操作 数据控制数据控制 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 v 从数据库中获取数据称为数据查询,数据查询使用从数据库中获取数据称为数据查询,数据查询使用 SELECT
19、语句:语句: 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 数据查询数据查询 SELECTALL|DISTINCTSELECTALL|DISTINCT FROMFROM WHEREWHERE GROUP BYGROUP BYHAVINGHAVING ORDER BYORDER BYASC|DESCASC|DESC 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 使用使用Write方法方法 例例10-2 关于学生选课的关于学生选课的SC数据表数据表 SNOSNAMECOURSE 001张三张三高等数学高等数学 002李四李四英语英语 003王五王五高等数
20、学高等数学 004赵六赵六高等数学高等数学 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 使用使用Write方法方法 例例10-2 关于教师信息的关于教师信息的Teacher数据表数据表 COURSETNAME 高等数学高等数学王美丽王美丽 英语英语张顺利张顺利 计算机计算机李德胜李德胜 电子线路电子线路赵未来赵未来 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 使用使用Write方法方法 例例10-2 使用使用SQL语言返回相关记录语言返回相关记录 1 1)返回)返回“SC”SC”表中的所有记录表中的所有记录 SELECT SELECT * * F
21、ROM SC FROM SC; 2 2)从)从“SC”SC”表中查询表中查询“SNAME”SNAME”字段值为字段值为 “张三张三”的记录,但仅返回记录的的记录,但仅返回记录的“SNAME”SNAME” 字段。字段。 SELECT SNAME FROM SC WHERE SELECT SNAME FROM SC WHERE SNAME=SNAME=张三张三; 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 使用使用Write方法方法 例例10-2 使用使用SQL语言返回相关记录语言返回相关记录 3 3)从)从“SC”SC”表中返回表中返回“SNAME”SNAME”字段,字段
22、, 条件为条件为“COURSE”COURSE”为为“高等数学高等数学” SELECT SNAME FROM SC WHERE SELECT SNAME FROM SC WHERE COURSE=COURSE=高等数学高等数学; 4 4)从)从“TeacherTeacher”表中返回表中返回“主讲教师主讲教师” 字段中含有字段中含有“张张”的所有记录的所有记录 SELECT SELECT * * FROM Teacher WHERE FROM Teacher WHERE TNAME LIKE TNAME LIKE 张张%; 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 1. 使用
23、使用Write方法方法 例例10-2 使用使用SQL语言返回相关记录语言返回相关记录 5 5)将两个表通过)将两个表通过“COURSE”COURSE”字段进行关字段进行关 联,返回一个多表查询数据集。要求其联,返回一个多表查询数据集。要求其 中包括中包括“SNO”SNO”、“SNAME”SNAME”、“COURSE”COURSE” 和和“TNAME”TNAME”四个字段。四个字段。 SELECT SC.SNO SELECT SC.SNO,SC.SNAMESC.SNAME, SC.COURSESC.COURSE,Teacher.TNAMETeacher.TNAME FROM Teacher, S
24、C FROM Teacher, SC WHERETeacher.COURSE=SC.COURSE WHERETeacher.COURSE=SC.COURSE v 插入记录使用插入记录使用INSERT语句,语句,INSERT语句的语法形式如语句的语法形式如 下:下: 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 2. 插入记录插入记录 INSERT INTOINSERT INTO(字段列表字段列表)VALUES)VALUES(表达式列表);(表达式列表); 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 v 【例例10-3】参照例参照例10-2中的表结构,向中的表结
25、构,向“SC”表中插入一表中插入一 条记录,并填写条记录,并填写“SNO”字段值为字段值为“005”, “SNAME” 字段值为字段值为“张晓晓张晓晓”, “COURSE”字段值为字段值为“计算机计算机” 。 INSERT INTO SCINSERT INTO SC(SNO,SNAME,COURSESNO,SNAME,COURSE) VALUES(005, VALUES(005, 张晓晓张晓晓, , 计算机计算机) ); v 修改记录使用修改记录使用UPDATE语句,语句,UPDATE语句的语法形式如语句的语法形式如 下:下: 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 3.
26、 修改记录修改记录 UPDATEUPDATE SETSET= WHEREWHERE 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 v 【例例10-4】参照例参照例10-2中的表结构,将中的表结构,将“Teacher”表中表中 计算机的任课教师由李德胜替换为张晓晓。计算机的任课教师由李德胜替换为张晓晓。 UPDATE TeacherUPDATE Teacher SET TNAME=SET TNAME=张晓晓张晓晓 WHERE COURSE= WHERE COURSE= 计算机计算机; v 删除记录使用删除记录使用DELETE语句,语句,DELETE语句的语法形式如语句的语法形式如
27、 下:下: 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 4. 删除记录删除记录 DELETE FORMDELETE FORMWHEREWHERE 10.1.3 数据库操作的基本数据库操作的基本SQL命令命令 v 【例例10-5】参照例参照例10-2中的表结构,将中的表结构,将“SC”表中张三的表中张三的 选课记录删掉。选课记录删掉。 DELETE FROM SC WHERE SNAME=DELETE FROM SC WHERE SNAME=张三张三; 10.2 数据访问数据访问 v10.2.1 数据源控件数据源控件 v10.2.2 SQLDataSource控件控件 v10.
28、2.3 Gridview控件控件 v10.2.4 Detailsview控件控件 v10.2.5 FormsView控件控件 v10.2.6 数据绑定数据绑定 v 一个数据源控件就是一组一个数据源控件就是一组NET框架类。框架类。 v 它使得程序员无需编码自动实现数据存储和数据绑定控件它使得程序员无需编码自动实现数据存储和数据绑定控件 之间的双向绑定。之间的双向绑定。 v 这些控件在这些控件在Visual Studio工具箱的工具箱的“数据数据”选项卡中可选项卡中可 以找到。以找到。 v ASP.NET包含不同类型的数据源控件,这些数据源控件包含不同类型的数据源控件,这些数据源控件 使用户可以
29、访问不同类型的数据源。使用户可以访问不同类型的数据源。 v 数据源控件在运行时是不可见的。数据源控件在运行时是不可见的。 10.2.1 数据源控件数据源控件 v SqlDataSource 控件使用控件使用 ADO.NET 类与类与 ADO.NET 所所 支持的任何数据库进行交互,包括:支持的任何数据库进行交互,包括: Microsoft SQL Server OLEDB ODBC(使用使用System.Data.Odbc提供程序提供程序) Oracle v 可以在可以在 ASP.NET 页中将页中将SqlDataSource 控件与数据绑定控件与数据绑定 控件一起使用,用极少代码或不用代码访
30、问和操作数据。控件一起使用,用极少代码或不用代码访问和操作数据。 10.2.2 SQLDataSource控件控件 1. SQLDataSource控件概述控件概述 v 双击工具箱双击工具箱“数据数据”选项卡中的选项卡中的SQLDataSource控件图控件图 标将其添加到标将其添加到Web窗体上,由于该控件在程序运行时是不窗体上,由于该控件在程序运行时是不 可见的,故可以放置在页面的任何位置。可见的,故可以放置在页面的任何位置。 10.2.2 SQLDataSource控件控件 2. 添加添加SQLDataSource控件控件 v 配置配置 SqlDataSource 控件时,将控件时,将
31、ProviderName 属性设属性设 置为数据库类型(默认为置为数据库类型(默认为 System.Data.SqlClient)并将)并将 ConnectionString 属性设置为连接字符串属性设置为连接字符串 。 v 连接字符串的内容根据数据源控件访问的数据库类型的不连接字符串的内容根据数据源控件访问的数据库类型的不 同而有所不同。同而有所不同。 10.2.2 SQLDataSource控件控件 2. 配置配置SQLDataSource控件控件 v 【例例10-6】本例使用本例使用SqlDataSource数据源控件连接数据源控件连接 SQL Server数据库,并显示数据库,并显示s
32、tudent数据库中数据库中SC数据表数据表 中的数据。中的数据。 1)首先,创建一个新的网站。)首先,创建一个新的网站。 2)打开工具箱中的数据页,选择)打开工具箱中的数据页,选择SqlDataSource控件,在控件,在 Web窗体中插入该控件。窗体中插入该控件。 3)窗体中插入的)窗体中插入的SqlDataSource控件如图所示,单击该控控件如图所示,单击该控 件的件的“配置数据源配置数据源”任务。任务。 10.2.2 SQLDataSource控件控件 4)单击)单击“配置数配置数 据源据源”对话框中的对话框中的 “新建连接新建连接”按钮按钮 ,将弹出,将弹出“添加连添加连 接接”对
33、话框。对话框。 10.2.2 SQLDataSource控件控件 5)在图)在图10-5所示的对话框中的所示的对话框中的“服务器名服务器名”一栏中填一栏中填 写写“stone-pcsqlexpress”,服务器名即是,服务器名即是SQL SERVER所安装在的计算机名称。然后在所安装在的计算机名称。然后在“选择或输选择或输 入一个数据库名入一个数据库名”一栏中填写或者下拉菜单选择一栏中填写或者下拉菜单选择 student数据库。数据库。 6)然后,可以单击)然后,可以单击“测试连接测试连接”按钮以确认已经连接按钮以确认已经连接 到数据库。到数据库。 7)单击)单击“确定确定”按钮返回按钮返回“
34、配置数据源配置数据源”向导,这时向导,这时 ,向导已自动生成了该数据源的连接字符串。,向导已自动生成了该数据源的连接字符串。 10.2.2 SQLDataSource控件控件 8)单击)单击“下一步下一步”按钮,确认将连接字符串保存在配按钮,确认将连接字符串保存在配 置文件中另存为置文件中另存为studentConnectionString,这样在,这样在 下次连接时就可以直接使用该字符串了。下次连接时就可以直接使用该字符串了。 9)单击)单击“下一步下一步”按钮,在按钮,在“配置配置Select语句语句”对话对话 框中指定需要检索的数据表及其字段(如图所示)。框中指定需要检索的数据表及其字段
35、(如图所示)。 本例的选择为本例的选择为SC表及其所有字段(表及其所有字段(*)。)。 10.2.2 SQLDataSource控件控件 10)单击)单击“下一步下一步”按钮,可以测试一下刚才配置按钮,可以测试一下刚才配置 Select语句的效果。其结果如图所示。语句的效果。其结果如图所示。 10.2.2 SQLDataSource控件控件 v 若想将数据源中的数据以不同的方式显示出来,还需要数若想将数据源中的数据以不同的方式显示出来,还需要数 据绑定控件。据绑定控件。 v GridView控件是一种数据绑定控件,该控件可以将数据控件是一种数据绑定控件,该控件可以将数据 以表或网格形式显示出来
36、。以表或网格形式显示出来。 v GridView控件支持如下功能:控件支持如下功能: 绑定到数据源控件。绑定到数据源控件。 内置的排序功能。内置的排序功能。 内置的更新和删除功能。内置的更新和删除功能。 内置的分页功能。内置的分页功能。 内置的行选择功能。内置的行选择功能。 10.2.3 Gridview控件控件 10.2.3 Gridview控件控件 v 【例例10-7】下面的例子演示数据源控件(下面的例子演示数据源控件( SQLDataSource控件)配合控件)配合GridView控件实现数据的浏控件实现数据的浏 览、编辑、删除操作。览、编辑、删除操作。 (1)添加)添加Grid Vie
37、w控件控件 10.2.3 Gridview控件控件 v (2)设置)设置GridView任务菜单中的任务菜单中的“编辑列编辑列”。 设置中文名称设置中文名称 10.2.3 Gridview控件控件 v (2)设置)设置GridView任务菜单中的任务菜单中的“编辑列编辑列”。 设置字段属性设置字段属性 10.2.3 Gridview控件控件 v (2)设置)设置GridView任务菜单中的任务菜单中的“编辑列编辑列”。 外观显示外观显示 SqlConnection connSqlConnection conn=new SqlConnection();/=new SqlConnection();
38、/实例化实例化 connectionconnection对象对象connconn Conn.ConnectionStringConn.ConnectionString= =“Data Source=bobo;Initial Data Source=bobo;Initial Catalog=student;Integrated Security=SSPICatalog=student;Integrated Security=SSPI”; /设置设置connconn的链接字符串的链接字符串 String strSQLString strSQL= =”select select avg(avg(”+
39、radiobuttonlist1.SelectedItem.Text+radiobuttonlist1.SelectedItem.Text+”)from )from ResultResult”; /; /定义定义SQLSQL语句语句 SqlCommand com=new SqlCommand(strSQL,conn); / SqlCommand com=new SqlCommand(strSQL,conn); / 创建创建commandcommand对象对象comcom conn.Open();/conn.Open();/打开对数据库的链接打开对数据库的链接 Double fAgv; / Do
40、uble fAgv; / 将执行的结果赋值给一个将执行的结果赋值给一个doubledouble类型的变类型的变 量量 Label1.Text=Label1.Text=”全班全班”+ + radiobuttonlist1.SelectedItem.Text+radiobuttonlist1.SelectedItem.Text+“平均成绩平均成绩 为:为:”+Math.Round+Math.Round(FAgv,2FAgv,2); /; /在在label1label1标签中显示结标签中显示结 果果 conn.Close(); /conn.Close(); /关闭对数据库的链接关闭对数据库的链接 v
41、 使用使用 DetailsView控件,可以在表格中逐一显示、编辑、控件,可以在表格中逐一显示、编辑、 插入或删除其关联数据源中的记录。插入或删除其关联数据源中的记录。 v 默认情况下,默认情况下, DetailsView控件将逐行单独显示记录的各控件将逐行单独显示记录的各 个字段。个字段。 v DetailsView控件与控件与GridView控件的最大不同点是,控件的最大不同点是, GridView控件是面向整个记录集合的,而控件是面向整个记录集合的,而GridView控件控件 则是面向单条记录的。则是面向单条记录的。 10.2.4 Detailsview控件控件 10.2.4 Detai
42、lsview控件控件 v 【例例10-8】使用使用Detailsview控件配合控件配合GridView控件设计控件设计 一个主表(一个主表(GridView控件)与详细表(控件)与详细表(Detailsview控件控件 )同步的)同步的Web应用程序。应用程序。 要求使用要求使用student数据库中的数据库中的Teacher表作为父表,表作为父表,SC表表 作为子表。程序运行时,单击父表中的一条课程记录,会作为子表。程序运行时,单击父表中的一条课程记录,会 在子表中将选择该课程的所有学生信息列出来。在子表中将选择该课程的所有学生信息列出来。 10.2.4 Detailsview控件控件 v
43、 (1)新建一个)新建一个ASP.NET网站,向网站中新添加一个网站,向网站中新添加一个Web 窗体,切换到该网页的设计视图,在网页中添加窗体,切换到该网页的设计视图,在网页中添加2个个 SqlDataSource,一个,一个GridView控件和一个控件和一个DetailsView 控件。控件。 10.2.4 Detailsview控件控件 v (2)配置数据源控件)配置数据源控件 10.2.4 Detailsview控件控件 v (3)设置)设置GridView控件和控件和DetailsView控件的属性。控件的属性。 v (4)完成,运行网站。)完成,运行网站。 10.2.5 Forms
44、View控件控件 v FormView控件也是用于浏览或操作数据库的数据控件。控件也是用于浏览或操作数据库的数据控件。 v 它与它与GridView相比主要的不同在于显示在相比主要的不同在于显示在FormView中的中的 数据记录是分页的,即每页只显示一条记录。数据记录是分页的,即每页只显示一条记录。 v DetatailsView和和FormView之间的主要差异在于之间的主要差异在于 DetailsView具有内置的表格呈现方面,而具有内置的表格呈现方面,而FormView需需 要用户定义模板用于呈现要用户定义模板用于呈现FormView和和DetaisView对象模对象模 型在其他方面非
45、常类似。型在其他方面非常类似。 v FormView没有自己默认的显示布局没有自己默认的显示布局 。 10.2.5 FormsView控件控件 v 【例例10-9】使用使用FormView数据控件配合数据控件配合 SQLDataSource控件创建一个用于浏览和操作控件创建一个用于浏览和操作student 数据库中数据库中SC表中记录的应用程序。表中记录的应用程序。 10.2.5 FormsView控件控件 v (1)设计)设计Web页面页面 v (2)配置数据源控件)配置数据源控件 10.2.5 FormsView控件控件 v (3)添加和设置)添加和设置Form View控件控件 10.2
46、.5 FormsView控件控件 v 为了页面整齐美观,可向模板中添加一个为了页面整齐美观,可向模板中添加一个HTML表格用于表格用于 页面定位。页面定位。 v 此外,页面中所有字段说明文字通常默认取为英文的字段此外,页面中所有字段说明文字通常默认取为英文的字段 名,在模板编辑窗口中应注意将其改为中文显示。名,在模板编辑窗口中应注意将其改为中文显示。 10.2.6 数据绑定数据绑定 v 数据绑定技术是一种将用户界面的界面控件与数据源的数数据绑定技术是一种将用户界面的界面控件与数据源的数 据捆绑在一起的技术据捆绑在一起的技术 。 v 在在.NET平台下,数据绑定技术有了进一步的发展,主要平台下,
47、数据绑定技术有了进一步的发展,主要 的改进包括:的改进包括: 数据源更为多样。数据源更为多样。 Web开发中也支持数据绑定。开发中也支持数据绑定。 数据绑定可以绑定到控件的更多属性上。数据绑定可以绑定到控件的更多属性上。 10.2.6 数据绑定数据绑定 v 在在ASP.NET中,引入了数据绑定语法,使用该语法可以中,引入了数据绑定语法,使用该语法可以 轻松地将轻松地将Web控件的属性绑定到数据源,语法如下:控件的属性绑定到数据源,语法如下: v DataSource表示各种数据源,可以是变量、表达式、属表示各种数据源,可以是变量、表达式、属 性、列表、数据集、视图等。性、列表、数据集、视图等。
48、 v 通过调用控件的通过调用控件的DataBind()方法来实现页面所有控件的数方法来实现页面所有控件的数 据绑定,从而在页面中显示出相应的绑定数据。据绑定,从而在页面中显示出相应的绑定数据。 v DataBind()方法是方法是ASP.NET的的Page对象和所有对象和所有Web控件控件 的成员方法。的成员方法。 10.2.6 数据绑定数据绑定 v 通常情况下,通常情况下,Page对象的对象的DataBind()方法都在方法都在 Page_Load事件响应函数中调用。调用的方法如下:事件响应函数中调用。调用的方法如下: protected void Page_Load(object send
49、er, EventArgs e)protected void Page_Load(object sender, EventArgs e) Page.DataBind(); Page.DataBind(); v DataBind()方法通常是在数据源中数据更新后调用,用于方法通常是在数据源中数据更新后调用,用于 同步数据源和数据控件中的数据,同步数据源和数据控件中的数据, 10.2.6 数据绑定数据绑定 v ASP.NET中的数据绑定可以分为三种形式:中的数据绑定可以分为三种形式: (1)简单绑定:是将一个用户界面控件的属性和一个类()简单绑定:是将一个用户界面控件的属性和一个类( 对象)实例上
50、的某个属性进行绑定的方法。对象)实例上的某个属性进行绑定的方法。 (2)复杂绑定:是把一个基于列表的用户界面控件(如)复杂绑定:是把一个基于列表的用户界面控件(如 ComboBox控件、控件、Grid控件)绑定到一个数据集(如控件)绑定到一个数据集(如 DataTable)的方法。)的方法。 (3)数据服务器控件:就是把从数据源获得的数据发送给)数据服务器控件:就是把从数据源获得的数据发送给 请求的客户端浏览器,然后将数据呈现在浏览器页面上。请求的客户端浏览器,然后将数据呈现在浏览器页面上。 10.3 数据库开发操作技巧数据库开发操作技巧 v 为了使客户能够访问服务器中的数据库,必须使用数据库
51、为了使客户能够访问服务器中的数据库,必须使用数据库 访问的方法和技术。本节将访问的方法和技术。本节将ASP.NET中主要的数据库开中主要的数据库开 发操作技巧作一归纳。发操作技巧作一归纳。 v 10.3.1 使用使用ADO.NET操作数据库操作数据库 v 10.3.2 使用使用Command对象更新记录件对象更新记录件 v 10.3.3 使用使用DataSet数据集更新记录数据集更新记录 10.3.1使用使用ADO.NET操作数据库操作数据库 v ExecuteReader()方法返回的是一个方法返回的是一个SqlDataReader对象对象 或或OleDbDataReader对象。对象。 v
52、 DataReader具有较快的访问能力,并且能够使用较少的具有较快的访问能力,并且能够使用较少的 服务器资源。服务器资源。 v DataReader对象提供了对象提供了“游标游标”形式的读取方法形式的读取方法 。 v ExecuteReader()操作主要进行数据库查询。操作主要进行数据库查询。 1. 使用使用ExecuteReader()操作数据库操作数据库 10.3.1使用使用ADO.NET操作数据库操作数据库 v 使用使用ExecuteNonQuery()操作数据库时,返回的是一个操作数据库时,返回的是一个 整型的值,代表执行某个整型的值,代表执行某个SQL语句后,在数据库中影响的语句
53、后,在数据库中影响的 行数。行数。 v ExecuteNonQuery()操作主要进行数据库操作,包括更操作主要进行数据库操作,包括更 新、插入和删除等操作,并返回相应的行数。新、插入和删除等操作,并返回相应的行数。 2. 使用使用ExecuteNonQuery()操作数据库操作数据库 10.3.1使用使用ADO.NET操作数据库操作数据库 v ExecuteScalar()方法的返回值的数据类型是方法的返回值的数据类型是Object类型类型 。 v 如果执行的如果执行的SQL语句是一个查询语句(语句是一个查询语句(SELECT),则返),则返 回结果是查询后的第一行的第一列。回结果是查询后的
54、第一行的第一列。 v 如果执行的如果执行的SQL语句不是一个查询语句,则会返回一个未语句不是一个查询语句,则会返回一个未 实例化的对象,必须通过类型转换来显示,实例化的对象,必须通过类型转换来显示, 3. 使用使用ExecuteScalar()操作数据库操作数据库 10.3.1使用使用ADO.NET操作数据库操作数据库 v ExecuteXmlReader()方法用于操作方法用于操作XML数据库,并返回一数据库,并返回一 个个XmlReader对象,对象, v 若需要使用若需要使用ExecuteXmlReader()方法,则必须添加引用方法,则必须添加引用 System.Xml。 v XmlR
55、eader类似于类似于DataReader,都需要通过,都需要通过Command对对 象的象的ExecuteXmlReader()方法来创建方法来创建XmlReader的对象并的对象并 初始化:初始化: XmlReader xdr = cmd.ExecuteXmlReader; 4. 使用使用ExecuteXmlReader()操作数据库操作数据库 10.3.2 使用使用Command对象更新记录对象更新记录 v 在在ADO.NET中,执行中,执行SQL语句有很多方法,其中推荐使语句有很多方法,其中推荐使 用用Command命令的命令的ExecuteNonQuery()。 v 执行执行SQL语
56、句的命令的必要步骤如下所示。语句的命令的必要步骤如下所示。 1)打开数据连接。)打开数据连接。 2)创建一个新的)创建一个新的Command对象。对象。 3)定义一个)定义一个SQL命令。命令。 4)执行)执行SQL命令。命令。 5)关闭连接。)关闭连接。 10.3.2 使用使用Command对象更新记录对象更新记录 v 执行执行SQL语句首先必须要打开到数据库的连接,代码如下语句首先必须要打开到数据库的连接,代码如下 所示。所示。 string str = string str = server=(local);database=mytable;uid=sa;pwd=sa;server=(l
57、ocal);database=mytable;uid=sa;pwd=sa; SqlConnection con = new SqlConnection(str);SqlConnection con = new SqlConnection(str); /创建连接对象创建连接对象 con.Open();con.Open(); / /打开连接打开连接 10.3.2 使用使用Command对象更新记录对象更新记录 v 完成数据库连接后,需创建一个新的完成数据库连接后,需创建一个新的Command对象,示对象,示 例代码,代码如下所示。例代码,代码如下所示。 SqlCommand cmd = new S
58、qlCommand(insert into mynews SqlCommand cmd = new SqlCommand(insert into mynews value (value (插入一条新数据插入一条新数据), con); ), con); v Command对象的构造函数的参数有两个,一个是需要执对象的构造函数的参数有两个,一个是需要执 行的行的SQL语句,另一个是数据库连接对象。语句,另一个是数据库连接对象。 10.3.2 使用使用Command对象更新记录对象更新记录 v 创建创建Command对象后,就可以执行对象后,就可以执行SQL命令,执行后完命令,执行后完 成并关闭数据
59、连接,代码如下所示。成并关闭数据连接,代码如下所示。 cmd.ExecuteNonQuery();cmd.ExecuteNonQuery();/执行执行SQLSQL命令命令 con.Close();con.Close(); / /关闭连接关闭连接 10.3.3 使用使用DataSet数据集更新记录数据集更新记录 v ADO.NET的DataSet对象提供了更好的编程实现数据库的 更新功能。 DataSet更新记录的步骤如下所示。 1)创建一个Connection对象。 2)创建一个DataAdapter对象。 3)初始化适配器。 4)使用数据适配器的Fill方法执行SELECT命令,并填充 D
60、ataSet。 10.3.3 使用使用DataSet数据集更新记录数据集更新记录 v DataSet更新记录的步骤如下所示。 5)执行SqlCommandBuilder方法生成UpdataCommand方 法。 6)创建DataTable对象并指定相应的DataSet中的表。 7)创建DataRow对象并查找需要修改的相应行。 8)更改DataRow对象中的列的值。 9)使用Update方法进行数据更新。 10.3.3 使用使用DataSet数据集更新记录数据集更新记录 v 将查询出来的数据集保存在表为将查询出来的数据集保存在表为datatable的的DataSet记录记录 集中,集中,Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采编部岗位责任制度
- 如何签订安全责任制度
- 净水厂岗位责任制度
- 染治理设施岗位责任制度
- 思想文化工作责任制度
- 4s职业病危害防治责任制度
- 配电房管理主体责任制度
- 首单责任制度
- 诊所安全责任制度范本
- 后厨员工责任制度
- 瓦斯隧道设备管理制度(3篇)
- 运输排土作业培训课件
- 工抵房定金合同范本
- 校园安全从我做起
- DGTJ08-10-2022 城镇天然气管道工程技术标准
- 安全事故发生的4个原因
- 2024年9月21日九江市五类人员面试真题及答案解析
- 项目部管理人员节后复工安全教育
- 基于多模型融合的飞机液压防滑刹车系统故障诊断技术深度剖析
- 2025年《AI原生应用架构白皮书》解读
- 2025年人力资源管理师(二级)案例分析专项训练试卷及答案
评论
0/150
提交评论