数据的显示与处理.ppt
《数据的显示与处理.ppt》由会员分享,可在线阅读,更多相关《数据的显示与处理.ppt(194页珍藏版)》请在三一办公上搜索。
1、第七章 数据的显示与处理,本章学习目标:本章主要讲解如何把数据库中的数据通过数据的列表控件显示出来并达到用户的要求,以及通过列表控件对数据库中的数据进行操作。通过对本章的学习,读者应该掌握以下主要内容:DataGrid控件的使用方法数据显示与处理的实际应用。例如,“伪邮件系统”中邮件的显示和附件标志的处理方式,7.1 伪邮件系统中邮件发送与接收说明,第七章 数据的显示与处理,7.2 邮件的发送 7.2.1 伪邮件发送界面说明 7.2.2 伪邮件发送程序 7.3 对于一个指定邮件的显示 7.3.1 DataGrid控件的介绍 7.3.2 DataGrid控件实现数据库记录的分页显示 7.3.3
2、DataGrid控件的记录 排序 7.3.4 DataGrid控件定制列元素 7.4.1 伪邮件的接收-收件箱程序 7.4.2 显示指定邮件的方法,7.1 伪邮件邮件的发送与接受说明,在本伪邮件系统中,在邮件的发送之前,必须首先要进行登录,登录成功之后才能进行邮件发送与接收。伪邮件系统中邮件的发送其实就是向“邮件数据表”中添加一条记录。工作过程是:用户在一个Web页面上填写收件人的用户名、主题、邮件正文以及所带的附件,然后点击“邮件发送”按钮,这时该页面的程序代码会执行一个操作把用户所填写的内容以及发件人的名字,当前写入数据表的时间(作为邮件的发送时间),写入“邮件数据表”中,即向该邮件数据表
3、中添加一条记录。,7.1 伪邮件邮件的发送与接受说明,这里所说的邮件接收,其实就是一种把“邮件数据表”中收件人与用户在使用本伪邮件系统的登录名相同的所有记录显示出来,然后用户可根据邮件的状态来选择删除某一记录(邮件)或显示某一邮件的详细信息。强调的是为了能使用户感觉比较正规,一般接收者在打开邮箱以前,就能看到是否有新邮件到来,所以在邮件数据表中设立了一个“邮件标志”标志字段,当邮件标志的值为1时,表示该邮件是新邮件,即当用户向邮件数据表中添加一条记录时该标志字段被置为1;当邮件标志的值为0时,表示该邮件是用户已阅读过的邮件,即只要用户打开过一次一条新邮件记录,立即把这条记录的“邮件状态标志”设
4、为0;当邮件状态标志的值为2时,表示此邮件在用户的垃圾箱中,即当用户把某一邮件记录扔到垃圾箱时,仅是把这条记录的“邮件状态标志”设为2。这样有利于程序员在编制程序时,能根据不同的情况列出不同的记录。例如:A用户要查询所有未读邮件,程序可以在邮件数据表中用这样的SQL查询语句:SELECT*FROM EMAIL WHERE D_EMAIL=A AND EMAIL_FLAG=1,7.1 伪邮件邮件的发送与接受说明,这个SQL查询语句用语言来解释就是“在邮件数据表email中筛选邮件的目的地址A并且邮件标志0的所有记录”。如果A用户要显示其收件箱的内容,应该显示“邮件数据表”中邮件的目的地址是登录名
5、A,并且邮件标志小于2的所有记录(即除了垃圾箱内的邮件),其SQL查询语句:SELECT*FROM EMAIL WHERE D_EMAIL=A AND EMAIL_FLAG2,7.2.1伪邮件发送界面说明,Web邮件的发送界面一般来说都是通过一个HTML的框架结构来实现的。通常来说是把一个框架分成两个左右两个部分,左边部分是用户进行邮件操作所使用的菜单,如发邮件、收件夹、未读邮件、垃圾箱等等一些导航按钮,当用户单击这些导航按钮之后,右边的部分就显示相应的页面。下面来看一下写邮件的界面,如图7-1所示,该页面是用户“liubing”登录后进行写邮件的界面。,7.2.1伪邮件发送界面说明,在这个邮
6、件的发送界面中有三个Web程序:框架结构程序,程序名:w7-1.aspx 左边的菜单选择程序,程序名:left.aspx 右边的发送邮件程序,程序名:sendmail.aspx 首先,介绍一下框架结构程序w7-1.aspx。下面是该程序的源代码:代码清单w7-1.aspx,7.2.1伪邮件发送界面说明,main_email本页需要框架结构,但是您的浏览器不支持它,7.2.1伪邮件发送界面说明,在此程序中,首先判断使用该程序的用户是否登录,如果会话变量“username”为空,则说明当前使用该程序的用户没有登录,那么程序会重新导航到登录界面程序“login.aspx”,要求用户登录;第二,此程序
7、把整个浏览器窗口分成左右两部分。左边框架调用程序“left.aspx”,并把该部分用对象名“contents”定义。右边框架调用程序“sendmail.aspx”,并把该部分用对象名“main”定义。这两个对象名,在本窗口的其它程序中可使用它们指定在哪一个框架打开相应的Web应用程序,这在left.aspx中会体现。下面来对left.aspx程序进行说明。其程序的源代码如下:代码清单left.aspx 这是邮箱,7.2.1伪邮件发送界面说明,未读邮件 收件箱 发邮件 垃圾箱,7.2.1伪邮件发送界面说明,该程序在客户端浏览器中的显示结果如图7-1左边框架所示。该程序中定义了几个超级链接导航按钮
8、,每个导航按钮都打开不同的Web应用程序,但是并不是新打开一个浏览器窗口打开来显示相应的Web应用程序,而是在图7-1的右边框架中显示。这是因为在该程序的每个导航按钮的定义中都使用了如下的属性设置:target=main这里“target”属性被设置为一个对象名“main”,这个对象名正是在w7-1.aspx应用程序中,用于定义浏览器窗口右边的框架对象名。如果把“target”值设为在w7-1.aspx定义的左边框架的对象名“contents”,则打开的应用程序就会在左边的框架中显示,伪邮件的发送程序,邮件的发送是把用户在图7-1中所填写的用户数据(包括收件人、主题、邮件内容、附件)和一些隐含
9、的信息(包括发件人、发送时间、新邮件标 志及附件标志)写入到数据库(本例中数据库在SQL Server中的名字是DBEmail)的数据表中(本例中的数据表是邮件数据表,名字是email),相当于在数据表中添加一条记录。当记录添加完毕之后,浏览器窗口被重新导航,打开一个邮件发送成功的页面。这个导航语句如下所示:Response.Redirect(sendmail_success.aspx?receive=&receive.text)在该语句中,Response.Redirect表示导航的含义,即打开一个新的Web页,这个Web页的名字是sendmail_success.aspx,同时还带有一个参
10、数receive,这个参数的内容是receive.text的值,而receive是图7-1中收件人文本框的对象名,也就是说这个参数的值是收件人的邮件地址。这样在这个发送成功Web页中,会有一个提示页面,说明该邮件已经发送到某某用户的邮箱。,伪邮件的发送程序,代码清单sendmail.aspx,伪邮件的发送程序,Sub sendmail(ByVal sender As System.Object,ByVal e As System.EventArgs)连接数据库,并添加一条记录Dim con As New SqlConnection(Data Source=.;PWD=)Dim cmd As S
11、qlCommandDim qry As Stringcon.Open(),伪邮件的发送程序,qry=“INSERT INTO email(s_email,d_email,subject,content,email_flag,sendtime,att_flag)&_Values(&session(username)&_,&receive.Text&_,&subject.Text&_,&content.Text&_,&1&_,&Now()&_,&0&)cmd=New SqlClient.SqlCommand(qry,con)cmd.ExecuteNonQuery()con.Close()邮件发送成
12、功,导航到发送成功Web程序:sendmail_success.aspxResponse.Redirect(sendmail_success.aspx?receive=&receive.text)End Sub,伪邮件的发送程序,Sub clear_all(ByVal sender As System.Object,ByVal e As System.EventArgs)receive.Text=subject.Text=content.Text=end sub 写邮件,伪邮件的发送程序,收件人(To):主件:,伪邮件的发送程序,邮件正文(Email Body):,伪邮件的发送程序,图7-2用
13、户填写邮件内容,伪邮件的发送程序,例如用户填写好相应的邮件内容(如图7-2所示),并且邮件发送成功之后,页面被导航到邮件发送成功页面(程序名:sendmail_success.aspx),在客户浏览器运行显示的结果如图7-3所示。其程序源代码如下所示:代码清单sendmail_success.aspx邮件发送成功,伪邮件的发送程序,邮件发送成功!邮件发送给:,伪邮件的发送程序,抄送给:无密送给:无,伪邮件的发送程序,邮件发送成功!,伪邮件的发送程序,图7.3邮件发送成功界面,伪邮件的发送程序,在邮件数据表(email)中的存储情况如图7-4所示。,图7-4 邮件发送成功后邮件数据表中的存储情况
14、,7.3.1 DataGrid控件简介,DataGrid Web服务器控件以表格式布局显示数据。默认情况下,DataGrid以只读模式显示数据,但是DataGrid也能够在运行时可修改或删除数据库中的数据。另外,DataGrid还支持分页。DataGrid Web 服务器控件必须通过其DataSource属性绑定到数据源,否则它将无法在页面上显示数据。DataGrid的典型数据源为DataSet和OleDbDataReader。当数据绑定时,可以为DataGrid控件整体指定一个数据源。网格为数据源中的每一行显示一行,即一项。默认情况下,DataGrid控件为数据源中的每个字段生成一个绑定列。
15、也可以选取数据源中的部分字段生成网格中的列。当Web程序运行时,程序内部的代码必须调用控件的DataBind方法以加载带有数据的网格。如果数据更改(例如,在一个事件处理程序中),则需要再次调用该方法以刷新网格。作为数据绑定的一部分,可以指定DataKeyField属性。此属性允许指定唯一标识网格中的每项信息。该信息不必是网格中显示的信息的一部分。它可以由数据源中的字段名组成(如主键)。和其他服务器控件一样,DataGrid控件中的数据绑定是单向的,也就是说,数据绑定是只读的。如果要使用网格允许用户编辑数据,则必须创建自己的代码来更新该数据源。在更新数据源之后,再次将数据绑定到该数据源。更新逻辑
16、经常利用 DataKeyField 定位使用该键值的正确记录。其使用语法为:,7.3.1 DataGrid控件简介,AllowPaging=True|FalseAllowSorting=True|FalseAutoGenerateColumns=True|FalseBackImageUrl=urlCellPadding=像素CellSpacing=像素DataKeyField=主键字段,7.3.1 DataGrid控件简介,GridLines=None|Horizontal|Vertical|BothHorizontalAlign=Center|Justify|Left|NotSet|Righ
17、tPagedDataSourcePageSize=ItemCountShowFooter=True|FalseShowHeader=True|FalseVirtualItemCount=ItemCountAlternatingItemStyle-Property=valueEditItemStyle-Property=valueFooterStyle-Property=valueHeaderStyle-Property=value,7.3.1 DataGrid控件简介,ItemStyle-Property=valuePagerStyle-Property=valueSelectedItemSt
18、yle-Property=valueOnCancelCommand=事件程序OnDeleteCommand=事件程序OnEditCommand=事件程序OnItemCommand=事件程序OnItemCreated=事件程序OnPageIndexChanged=事件程序OnSortCommand=事件程序OnUpdateCommand=事件程序/或其它属性设定.,7.3.1 DataGrid控件简介,样版设定.DataGrid控件常用的属性如表7-301所示。DataGrid控件所能控制的事件如表7-302所示。表7-301 DataGrid控件常用的属性,7.3.1 DataGrid控件简介
19、,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,利用以上以上介绍的控制DataGrid控件的属性,来看一个示例,考察一下DataGrid控件如何显示数据库中某一个表的数据。其源代码如下所示:代码清单w7-301.aspx Sub Page_Load(sender as Object,e as EventArgs)BindData()End Sub Sub BindData(),7.3.1 DataGrid控件简介,1.建立连接 Dim myConnection as New SqlConnection(Data Source=
20、.;Initial Catalog=Dbemail _;UID=sa;PWD=)2.建立Command对象 Const strSQL as String=select*from email where id17 order by idDim myCommand as New SqlCommand(strSQL,myConnection)3.建立DataAdapter Dim myDA as New SqlDataAdapter()myDA.SelectCommand=myCommand,7.3.1 DataGrid控件简介,4.组件DataSet Dim myDS as New DataSet
21、()myDA.Fill(myDS)5.捆绑数据 dgPopularFAQs.DataSource=myDS dgPopularFAQs.DataBind()End Sub,7.3.1 DataGrid控件简介,在数据库中选择一些数据用DataGrid控件显示 asp:datagrid id=dgPopularFAQs runat=server BorderWidth=0 CellPadding=2 Width=100%Font-Name=Verdana Font-Size=Smaller HeaderStyle-HorizontalAlign=Center HeaderStyle-Font-B
22、old=True,7.3.1 DataGrid控件简介,HeaderStyle-BackColor=Navy HeaderStyle-ForeColor=White AlternatingItemStyle-BackColor=#dddddd 该示例在客户浏览器运行显示的结果如图7-301所示,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,在本例中,为了使页能够访问执行 SQL 数据访问所需的类,必须将System.Data和System.Data.SqlClient命名空间导入到页中。需要注意的是,上面代码中ConnectionString必须是合法的SQL数据
23、库连接语句。比如,像以下格式的数据库连接(使用OleDb有一些细微的变化):server=IP地址;UID=用户名;pwd=密码;Initial Catalog=数据库名以上数据库连接、数据显示通过以下五步实现:1、连接到数据库;2、通过适当的SQL查询语句建立Command对象;3、建立DataAdp;4、通过请求得到的数据组建DataSet;5、捆绑DataSet到DataGrid;,7.3.2 DataGrid控件实现数据库记录的分页显示,通常,Web应用程序中一种常见的情况是显示列表,例如搜索结果的列表或目录中产品的列表。如果搜索结果有5000条记录,那么仅在一页上显示肯定是不好的,这
24、时就需要把这些搜索结果用分页的形式显示,同时为用户提供一种在这些页之间定位的方式。在ASP.NET没有发布之前,要实现记录的分页显示是一件很烦琐的事情,常常需要花费开发者许多的精力。现在,利用DataGrid控件就可以很轻松地完成这一工作,只需要为DataGrid控件设置几个属性就可以实现分页功能。DataGrid控件支持三种类型的分页:带有默认导航按钮的默认分页、带有自定义导航控件的默认分页、自定义分页。在表7-303中给出了这几种分页方式的说明。,7.3.2 DataGrid控件实现数据库记录的分页显示,7.3.2 DataGrid控件实现数据库记录的分页显示,1.数据分页的实现 使用Da
25、taGrid要实现数据分页,只需要以下简单的几步就可以了:1)设置DataGrid控件的AllowPaging为True,其实就是设置DataGrid为允许分页显示;2)编写OnPageIndexChanged事件来处理分页请求;这样就可以了,针对刚才的举例,对以上代码中的DataGrid设置相应的属性和相关事件就可以实现数据分页了:,7.3.2 DataGrid控件实现数据库记录的分页显示,asp:datagrid id=dgPopularFAQs runat=server BorderWidth=0 CellPadding=2 Width=100%Font-Name=Verdana Fon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 显示 处理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6578780.html