ASP.NET程序设计实用技术教学课件王凤岭第7章节

上传人:E**** 文档编号:90570593 上传时间:2019-06-13 格式:PPT 页数:53 大小:146KB
返回 下载 相关 举报
ASP.NET程序设计实用技术教学课件王凤岭第7章节_第1页
第1页 / 共53页
ASP.NET程序设计实用技术教学课件王凤岭第7章节_第2页
第2页 / 共53页
ASP.NET程序设计实用技术教学课件王凤岭第7章节_第3页
第3页 / 共53页
ASP.NET程序设计实用技术教学课件王凤岭第7章节_第4页
第4页 / 共53页
ASP.NET程序设计实用技术教学课件王凤岭第7章节_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《ASP.NET程序设计实用技术教学课件王凤岭第7章节》由会员分享,可在线阅读,更多相关《ASP.NET程序设计实用技术教学课件王凤岭第7章节(53页珍藏版)》请在金锄头文库上搜索。

1、第7章 使用DataReader、Command对象和list-bound控件读取数据,7.1 处理和显示数据,通过ADO.NET访问数据库需要通过以下过程: 创建数据源(库)连接 从数据源读取、写入、修改数据 在Web页面上显示数据,7.1.1 Command对象,Command对象允许使用其属性和方法来执行要执行的任何SQL命令,并查看这些命令的执行情况,另外还可以结合Connection对象执行事务处理。,SqlCommand的属性 Connection CommandText CommandType Parameters Transaction UpdateRowSource,例程7.

2、1 Dim cmd As New SqlCommand cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = “SELECT * FROM tblStudents“,例程7.2 Dim cmd As New SqlCommand cmd.Connection = conn cmd.CommandType = CommandType.TableDirect cmd.CommandText = “tblStudents“,例程7.3 Dim cmd As New SqlCommand cmd.Conne

3、ction = conn cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = “GetAllStudentName“,表7.2:SqlCommand的方法 ExecuteNonQuery ExecuteReader ExecuteScalar ExecuteXmlReader(不在本书讨论范围) CreateParameter Cancel ResetCommandTimeout,(1) ExecuteNonQuery ExecuteNonQuery方法将SQLServer上执行指定的T-SQL,但是它只返回受T-SQ

4、L影响的行数。因此,它适合执行不返回结果集的T-SQL命令。,(2) ExecuteReader ExecuteReader方法用于返回包含由SQL Server执行的命令返回的行的DataReader对象。 DataReader对象是一种从SQL Server中检索单一结果集的高速、只读方法。,(3) ExecuteScalar ExecuteScalar方法用于运行返回单一行中的单列的查询,例如COUNT(*)之类的聚合函数。,(4) ExecuteXmlReader ExecuteXmlReader可以用于执行输出XML的T-SQL命令,如使用FOR XML选项的SEIECT语句。,7.

5、1.2 DataReader对象,DataReader对象的特征: 只能读取数据,不能添加、修改、删除数据。 只能在记录间向前移动。 在内存中存放数据。 连接模式下工作。,阅读表7.3、表7.4,了解SqlDataReader的属性和方法。,7.2 使用DataReader对象,使用DataReader的步骤: (1)打开数据库连接(Connection) (2)执行Command.ExecuteReader()获取一个DataReader。 (3)通过DataReader.Read()返回值判断是否有数据可读。 (4)逐条读取数据。 (5)数据读取完毕即关闭数据库连接。,7.2.1 使用Da

6、taReader对象检索数据, 建立数据库连接 Dim conn As New SqlConnection conn.ConnectionString = ConfigurationSettings.AppSettings(“DBConnStr”) 定义要执行的SQL语句 Dim cmd As New SqlCommand cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = “select * from tblStudent”, 定义DataReader Dim dr As SqlDataRead

7、er conn.Open() dr = cmd.ExecuteReader 通过DataReader读取数据 Do While dr.Read() Response.Write(dr(“Name”)&”) Loop 关闭DataReader和数据库连接 dr.Close() conn.close(),7.2.2 DataReader对象的常用方法,GetDataTypeName 获取数据表中某列(字段)的数据类型 例: Dim dr As SqlDataReader dr = cmd.ExecuteReader If dr.Read Then Response.Write(dr.GetData

8、TypeName(0) End If 同时请看教材例程7.12,GetValues/GetSqlValues 将某行记录的所有列(所有字段)的值填充到一个数组当中。 例如: Dim dr As SqlDataReader Dim myColums(dr.FieldCount-1) As Object If dr.Read Then dr.GetValues(myColums) End If 请同时参考教材例程7.13和7.14。,检索多个结果集 一次性将多个SQL语句发送到数据,随后将接收到多个结果集。 如: Dim conn As New SqlConnection( Configurati

9、onSettings .AppSettings(“DBConnStr“) Dim cmd As New SqlCommand cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = “SELECT * FROM tblStudents ; SELECT * FROM tblUsers” - 访问下一个结果集的方法是 dr.NextResult(),使用DataReader填充控件(遍历数据表中的记录) Dim conn As New SqlConnection(ConfigurationSetting

10、s .AppSettings(“DBConnStr“) Dim cmd As New SqlCommand(“SELECT DISTINCT Class FROM tblStudents“, conn) conn.Open() Dim dr As SqlDataReader = cmd.ExecuteReader While dr.Read DropDownList1.Items.Add(dr(“Class“) End While dr.Close() conn.Close(),7.3 在ASP.NET中使用list-bound控件,存在问题: 使用Response.Write(DataRea

11、der(“字段名”)的方式输出数据库记录比较麻烦,而且界面上很难做得美观。 解决办法: 将DataReader对象赋值到相关控件的DataSource数据源属性,并且执行控件中的DataBind()方法以实现数据绑定。,ASP.NET提供了一种简单的方法来显示ADO.NET中的数据,具体可分为以下几个步骤: 将数据相关的Web服务器控件添加到页面上 将DataReader对象赋给控件的DataSource属性 执行控件的DataBind()方法,7.3.1 列表框和下拉框控件,用DropDownList显示班级列表 Dim dr As SqlDataReader = cmd.ExecuteRe

12、ader DropDownList1.DataSource = dr 设置将数据表的哪个字段显示在DropDownList1当中 DropDownList1.DataTextField = “Class“ DropDownList1.DataBind() 数据绑定,用ListBox显示学生列表 ListBox1.DataSource = cmd.ExecuteReader 设置将数据表的哪个字段显示在ListBox1当中 ListBox1.DataTextField = “Name“ 设置将数据表的哪个字段作为ListBox1的选项值 ListBox1.DataValueField = “St

13、udentID“ ListBox1.DataBind(),使用DataGrid显示数据 Dim cmd As New SqlCommand DataGrid1.DataSource = cmd.ExecuteReader DataGrid1.DataBind(),7.3.2 使用单选按钮列表,使用单选按钮列表显示数据 请参考DropDownList和ListBox等控件访问数据库的方法。,7.3.3 使用复选框和列表框进行多项选择,显示复选框控件 方法类似于DropDownList显示数据库的数据。 查看来自多个选项的数据 主要工作是判断CheckBox哪项被选中。 请参考例程7.27,Dim

14、 strSelectionResult As String Dim itm As ListItem For Each itm In ckbStudents.Items strSelectionResult &= itm.Value Next,If strSelectionResult String.Empty Then grdStudents.Visible = True Else grdStudents.Visible = False End If,7.3.4 Repeater控件,Repeater用于自定义列表、表格来显示数据 Repeater控件没有可视化设计界面,需要在HTML中编写代

15、码。 绑定数据源 Repeater控件可以绑定任何数据源,如DataReader对象或DataSet对象。,ItemTemplate:定义数据源中每一行的内容和外观。 AlternatingItemTemplate:定义数据源中的间隔行的内容和外观,它是可选的,用来创建容易读取的表格。 HeaderTemplate:定义表格头部的外观。 FooterTemplate:定义表格尾部的外观。 SeparatorTemplate:定义行与行之间的分隔元素。,定义模板 ,编写HeaderTemplate 姓名 国家 ,编写ItemTemplate , ,编写AlternatingItemTemplat

16、e的代码 , ,DataBinder.Eval中的格式串,请参考例程7.33和7.34,7.3.5 DataList控件,DataList用于显示数据。它除了拥有Repeater的功能,还提供了更多的功能。 DataList支持使用可视化工具设计模板的功能。,和Repeater一样,DataList同样支持ItemTemplate、AlternatingItemTemplate、HeaderTemplate、FooterTemplate、SeparatorTemp模板,同时还另外提供了两个模板: SelectedItemTemplate 选择模式的模板 EditItemTemplate 编辑模式的模板,使DataList数据表拥有按钮 ,DataList中的按钮命令以及对应的事件 请注意这些CommandName值是区分大小写的,如何进

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号