深入进行数据库编程1.ppt_第1页
深入进行数据库编程1.ppt_第2页
深入进行数据库编程1.ppt_第3页
深入进行数据库编程1.ppt_第4页
深入进行数据库编程1.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

ASP.NET程序设计配套课件,主编:屈武江 信箱:,第6章 深入数据库编程,讲解提纲,6.1 DataGrid控件再探讨 6.2 使用DataList控件存取数据库 6.3 使用Repeater控件存取数据库 6.4 使用含有参数的SQL语句 6.5 对多个表进行操作 6.6 DataSet对象再探讨 6.7 综合示例,本章要点,使用DataGrid控件分页、排序、定制列、自定义列 使用DataList控件显示和编辑数据 使用Repeater控件显示数据 使用SQL参数查询语句 对多个表进行操作 手工建立DataSet对象,利用DataSet对象对数据库进行操作,6.1 DataGrid控件再探讨,分页显示数据 排序 定制列 链接到详细页 自定义列,6.1.1 分页显示数据,在DataGrid控件中添加如下属性: AllowPaging=“True“ 表示允许分页显示 PageSize=“整数值” 每页显示多少条记录 OnPageIndexChanged=“事件过程” 切换到另一页时的事件过程 利用PagerStyle属性设置分页导航栏的样式: PagerStyle-Mode=“ NextPrev | NumericPages” PagerStyle-HorizontalAlign=“Left | Right |center“ PagerStyle-PrevPageText=“字符串” PagerStyle-NextPageText=“字符串” 在事件过程中只要令DataGride控件的CurrentPageIndex属性为选定的页,然后重新绑定数据即可,分页显示数据示例_程序代码,分页显示数据示例_运行效果,6.1.2 对数据进行排序,要进行排序,必须要在DataGrid控件中添加如下属性: AllowSorting=“True“ 表示允许排序 OnSortCommand= “事件过程“ 排序对应的事件过程 排序的中心思想是当单击DataGrid某一列的标题时,就将这一列的字段名称赋值给DataSet对象默认视图的Sort属性,然后就可以按该列排序了。 DS.Tables(“link“).DefaultView.Sort=SortField MyDataGrid.DataBind(),排序的具体方法,首先在DataGrid控件中添加相应属性。 其次一个页面级变量SortField,用来存放排序字段。 启动页面时可以令SortField为默认的排序字段user_id,然后绑定数据。 当客户选择了排序的字段后,就令SortField为新的排序字段,然后绑定数据。,对数据进行排序示例_程序代码,对数据进行排序示例_运行效果,6.1.3 定制列,要自己定制列,首先需要在DataGrid控件中添加如下属性 AutoGenerateColumns=“False“ 此外,还需要自己添加BoundColumn、HyperLinkColumn列。 对于定制列,只要修改DataGrid控件就可以了,基本上不用修改,定制列示例_程序代码,定制列示例_运行效果,6.1.4 链接到详细页,如果一个数据表有很多字段,通常做法是只显示若干重要字段,然后单击一个“详细”超链接,就可以打开一个详细页面,在详细页面中显示所有字段。 要达到以上目的,也只要利用6.1.3节中讲到的HyperLinkColumn列,只不过链接到一个新的页面即可。,链接到详细页示例_程序代码,链接到详细页示例_运行效果,链接到详细页示例_详细页代码与运行效果,6.1.5 自定义列,事实上,还可以利用TemplateColumn更加自由的定义每一列。 服务器控件 服务器控件 ,自定义列示例,分步讲解: 第1步:在DataGrid控件中对“个人主页”和“年龄”两列使用自定义列。 第2步:在更新事件过程中获取文本框控件中和下拉列表框控件中的值,并进行更新。 说明: 其它部分同以前示例,第1步:DataGrid控件部分,第2步:更新事件过程部分,6.2 使用DataList控件存取数据库,DataGrid控件只能以表格形式显示数据,但是DataList控件就可以以更自由的方式显示数据,比如可以在1行显示多条记录。 不过它的功能没有DataGrid控件强大,如不支持分页和排序等。,6.2.1 DataList控件简介, 模板列 ,DataList控件中的模板列,6.2.2 查询记录,查询记录的步骤和DataGrid控件几乎一致。 区别只是声明控件的语法部分。,查询记录示例_程序代码,查询记录示例_运行效果,6.2.3 选择记录,在DataList控件中可以使用SelectedItemTemplate模板列设定选中项的内容和样式。 步骤: 一般需要添加一个LinkButton控件; 并且添加SelectedItemTemplate模板; 并设置OnItemCommand属性对应的事件过程; 在事件过程中设置SelectedIndex属性为选中项,然后重新绑定数据即可。,第1步:DataList控件部分,第2步:事件过程部分,运行效果,6.2.4 更新和删除记录,利用DataList控件也可以更新和删除记录,此时它和DataGrid控件的操作非常类似。 它需要在EditItemTemplate列中自己定义编辑时的内容和样式; 还要添加OnEditCommand、OnUpdateCommand、OnCancelCommand、OnDeleteCommand事件属性,分别对应单击编辑、更新、取消和删除按钮时的事件过程; 同时还要利用DataKeyField属性设置关键字段。 在ItemTemplate和EditItemTemplate列中要分别添加几个LinkButton控件,当单击这些按钮时就会触发相应的事件过程。,第1步:DataList控件部分,第2步:更新事件过程,运行效果,6.3 使用Repeater控件存取数据库,Repeater控件也可以用来绑定数据库,它和DataList控件非常相似,但是有几个区别: (1)DataList控件显示时会把每一条记录放在一个表格单元内(可以在浏览器中查看源代码),而Repeater控件就会严格按照用户的定义显示数据。 (2)DataList控件支持更新和删除记录,而Repeater控件则只支持查询记录。 (3)DataList控件可以在1行显示若干条记录,而Repeater控件1行只能显示1条记录。 总的来说,Repeater控件显示更自由,但是功能最简单。,6.3.1 Repeater控件简介,语法如下: 模板列 模板列:,6.3.2 查询记录,数据的绑定和DataList类似 关键是声明Repeater控件的部分,查询记录示例,运行效果,6.3.3 选择记录,Repeater控件不仅可以用来查询记录,其实也可以其中添加LinkButton控件,单击该按钮就可以执行相应的事件过程,这一点和6.2.3有些相似。 首先在模板列中添加一个LinkButton控件,然后要设置OnItemCommand属性对应的事件过程。 当单击该按钮时,在事件过程中进行有关操作,然后重新绑定数据即可,选择记录示例_控件部分,选择记录示例选择事件过程部分,运行效果,6.4 使用含有参数的SQL语句,下面就是一个最简单的参数化SQL语句,其中包含了1个参数username。: “Select * From link Where username = username“ 当需要给该参数赋值时,可以使用Command对象建立参数对象,然后再赋值。 cmd.Parameters.Add(New OleDbParameter(“username“, OleDbType.Char,20) cmd.Parameters(“username“).Value=“wenhao“,含有参数的SQL语句示例_程序代码,含有参数的SQL语句示例_运行效果,6.5 对多个表进行操作,6.5.1 组合查询,其实,只要使用组合查询的SQL语句就可以了,其它和6-5.aspx、6-6.aspx都一样。 比如,现在要显示用户编号User_id、用户名Uname、登录时间Logtime、登录IP地址Logip共四个字段,并且要按着用户名排序,则必须将Select语句写成如下形式: Select users.user_id,user.uname,userlog.logtime, userlog.logip From users,userlog where user.user_id=userlog.user_id order by users.uname,6.5.2 对多个表进行更新和删除操作,首先说明,Select语句可以使用多个表,但是Insert、Update和Delete语句只能对1个表进行操作。 比如,当需要同时删除两个表中的数据的时候,就需要大家手工一个表一个表进行,对多个表进行操作示例,6.6 DataSet对象再探讨,DataSet对象可以由数据库、XML或手工建立,它是和数据源断开的。 DataSet对象其实就像内存中的数据库,具有表、行、列、主键、关系等。 它需要借助DataAdapter对象将更新反映到数据源中。,6.6.1 建立DataSet对象,填充DataSet对象的几种方法: 由数据库中填充 从XML文件中填充 完全手工填充,手工建立DataSet对象示例_程序代码,手工建立DataSet对象示例_运行效果,6.6.2 对DataSet对象的操作,删除列的一般方法是: dt.Columns.Remove(“submit_date“) 删除行的一般方法首先定位到该行,然后使用delete方法: dr= dt.Rows(行编号) dr.Delete 修改值的一般方法首先定位到该行,然后对指定列赋值: dr= dt.Rows(行编号) dr(“列名称“)=值 返回表中行的数目的方法如下: number=dt.Rows.Count 返回表中列的数目的方法如下: number=dt.Columns.Count 对列进行排序的一般方法如下: ds.Tables(表编号).DeaultView.Sort=“列名称 DESC“ 对行进行筛选的一般方法如下: ds.Tables(表编号).DeaultView.RowFilter=“条件,如age20“,对DataSet对象的操作示例_程序代码,对DataSet对象的操作示例_运行效果,6.6.3 把DataSet对象中的更新写回到数据库,DataSet对象是和数据库断开的,如果要将改变更新到数据库中,就需要借助DataAdapter对象。,把DataSet对象中的更新写回到数据库示例,用Session保存Dataset对象: 第1次打开时读取原始数据,并将DataSet对象保存到S

温馨提示

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

评论

0/150

提交评论