已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章深入进行数据库编程 讲解提纲 7 1DataGrid控件再探讨7 2使用DataList控件存取数据库7 3使用Repeater控件存取数据库7 4使用含有参数的SQL语句7 5对多个表进行操作7 6存取SQLServer数据库7 7DataSet对象再探讨7 8综合示例 本章要点 使用DataGrid控件分页 排序 定制列 自定义列使用DataList控件显示和编辑数据使用Repeater控件显示数据使用SQL参数查询语句对多个表进行操作连接SQLServer数据库的语句手工建立DataSet对象 利用DataSet对象对数据库进行操作 7 1DataGrid控件再探讨 分页显示数据排序定制列链接到详细页自定义列 7 1 1分页显示数据 在DataGrid控件中添加如下属性 AllowPaging True 表示允许分页显示PageSize 整数值 每页显示多少条记录OnPageIndexChanged 事件过程 切换到另一页时的事件过程利用PagerStyle属性设置分页导航栏的样式 PagerStyle Mode NextPrev NumericPages PagerStyle HorizontalAlign Left Right center PagerStyle PrevPageText 字符串 PagerStyle NextPageText 字符串 在事件过程中只要令DataGride控件的CurrentPageIndex属性为选定的页 然后重新绑定数据即可 分页显示数据示例 add aspx 7 1 2对数据进行排序 要进行排序 必须要在DataGrid控件中添加如下属性 AllowSorting True 表示允许排序OnSortCommand 事件过程 排序对应的事件过程排序的中心思想是当单击DataGrid某一列的标题时 就将这一列的字段名称赋值给DataSet对象默认视图的Sort属性 然后就可以按该列排序了 DS Tables link DefaultView Sort SortFieldMyDataGrid DataBind 排序的具体方法 首先在DataGrid控件中添加相应属性 其次一个页面级变量SortField 用来存放排序字段 启动页面时可以令SortField为默认的排序字段link id 然后绑定数据 当客户选择了排序的字段后 就令SortField为新的排序字段 然后绑定数据 对数据进行排序示例 7 2 aspx 7 1 3定制列 要自己定制列 首先需要在DataGrid控件中添加如下属性AutoGenerateColumns False 此外 还需要自己添加BoundColumn HyperLinkColumn列 对于定制列 只要修改DataGrid控件就可以了 基本上不用修改 定制列示例 7 3 aspx 7 1 4链接到详细页 如果一个数据表有很多字段 通常做法是只显示若干重要字段 然后单击一个 详细 超链接 就可以打开一个详细页面 在详细页面中显示所有字段 要达到以上目的 也只要利用7 1 3节中讲到的HyperLinkColumn列 只不过链接到一个新的页面即可 链接到详细页示例 7 4 aspx 详细页示例 7 5 aspx 7 1 5自定义列 事实上 还可以利用TemplateColumn更加自由的定义每一列 服务器控件服务器控件 自定义列示例 分步讲解 第1步 在DataGrid控件中对 网站简介 和 网站评分 两列使用自定义列 第2步 在更新事件过程中获取文本框控件中和下拉列表框控件中的值 并进行更新 说明 其它部分同以前示例 第1步 DataGrid控件部分 7 6 aspx 第2步 更新事件过程部分 7 6 aspx 7 2使用DataList控件存取数据库 DataGrid控件只能以表格形式显示数据 但是DataList控件就可以以更自由的方式显示数据 比如可以在1行显示多条记录 不过它的功能没有DataGrid控件强大 如不支持分页和排序等 7 2 1DataList控件简介 模板列 DataList控件中的模板列 ItemTemplateAlternatingItemTemplateSeparatorTemplateSelectedItemTemplateEditItemTemplateHeaderTemplateFooterTemplate 7 2 2查询记录 查询记录的步骤和DataGrid控件几乎一致 区别只是声明控件的语法部分 查询记录示例 7 7 aspx 7 2 3选择记录 在DataList控件中可以使用SelectedItemTemplate模板列设定选中项的内容和样式 步骤 一般需要添加一个LinkButton控件 并且添加SelectedItemTemplate模板 并设置OnItemCommand属性对应的事件过程 在事件过程中设置SelectedIndex属性为选中项 然后重新绑定数据即可 第1步 DataList控件部分 7 8 aspx 第2步 事件过程部分 7 8 aspx 7 2 4更新和删除记录 利用DataList控件也可以更新和删除记录 此时它和DataGrid控件的操作非常类似 它需要在EditItemTemplate列中自己定义编辑时的内容和样式 还要添加OnEditCommand OnUpdateCommand OnCancelCommand OnDeleteCommand事件属性 分别对应单击编辑 更新 取消和删除按钮时的事件过程 同时还要利用DataKeyField属性设置关键字段 在ItemTemplate和EditItemTemplate列中要分别添加几个LinkButton控件 当单击这些按钮时就会触发相应的事件过程 第1步 DataList控件部分 7 9 aspx 第2步 更新事件过程 7 9 aspx 7 3使用Repeater控件存取数据库 Repeater控件也可以用来绑定数据库 它和DataList控件非常相似 但是有几个区别 1 DataList控件显示时会把每一条记录放在一个表格单元内 可以在浏览器中查看源代码 而Repeater控件就会严格按照用户的定义显示数据 2 DataList控件支持更新和删除记录 而Repeater控件则只支持查询记录 3 DataList控件可以在1行显示若干条记录 而Repeater控件1行只能显示1条记录 总的来说 Repeater控件显示更自由 但是功能最简单 7 3 1Repeater控件简介 语法如下 模板列模板列ItemTemplateAlternatingItemTemplateSeparatorTemplateHeaderTemplateFooterTemplate 7 3 2查询记录 数据的绑定和DataList类似关键是声明DataList控件的部分 查询记录示例 7 10 aspx 7 3 3选择记录 Repeater控件不仅可以用来查询记录 其实也可以其中添加LinkButton控件 单击该按钮就可以执行相应的事件过程 这一点和7 2 3有些相似 首先在模板列中添加一个LinkButton控件 然后要设置OnItemCommand属性对应的事件过程 当单击该按钮时 在事件过程中进行有关操作 然后重新绑定数据即可 选择记录示例 控件部分 7 11 aspx 选择记录示例 选择过程部分 7 11 aspx 7 4使用含有参数的SQL语句 下面就是一个最简单的参数化SQL语句 其中包含了1个参数 sitename Select FromlinkWheresitename sitename 当需要给该参数赋值时 可以使用Command对象建立参数对象 然后再赋值 cmd Parameters Add NewOleDbParameter sitename OleDbType Char 20 cmd Parameters sitename Value 搜狐 含有参数的SQL语句示例 7 12 aspx 7 5对多个表进行操作 7 5 1组合查询 其实 只要使用组合查询的SQL语句就可以了 其它和6 5 aspx 6 6 aspx都一样 比如 现在要显示网站编号ID 网站名称sitename 年份fyear 收入income四个字段 并且要按网站名称和年份排序 则必须将Select语句写成如下形式 Selectlink link id link sitename finance fyear finance incomeFromlink financeWherelink link id finance link idOrderBylink sitename finance fyear 7 5 2对多个表进行更新和删除操作 首先说明 Select语句可以使用多个表 但是Insert Update和Delete语句只能对1个表进行操作 比如 当需要同时删除两个表中的数据的时候 就需要大家手工一个表一个表进行 对多个表进行操作示例 7 13 aspx 7 6存取SQLServer数据库 SQL数据库是微软推出的大型网络数据库 效率更高 运行更稳定 对于大型网站 还是建议采用SQL数据库 7 6 1建立SQLServer数据库 建立一个数据库wwwlink 然后再建立表link 字段结构如图7 15所示 然后再为其添加用户test 密码是1234 7 6 2存取SQLServer数据库 使用第一套类库 数据库连接字符串为 Provider SqlOleDb 1 DataSource localhost initialCatalog wwwlink Uid test Pwd 1234 如果使用第二套类库 就需要在页面中首先导入相应类 建立Connection对象的数据库连接字符串修改为 Server localhost Database wwwlink Uid test Pwd 1234 其它部分和读取Access数据库基本一致 特别注意 日期字段值两边不用 号 而改用引号 7 7DataSet对象再探讨 DataSet对象可以由数据库 XML或手工建立 它是和数据源断开的 DataSet对象其实就像内存中的数据库 具有表 行 列 主键 关系等 它需要借助DataAdapter对象将更新反映到数据源中 7 7 1建立DataSet对象 填充DataSet对象的几种方法 由数据库中填充从XML文件中填充完全手工填充 手工建立DataSet对象示例 1 7 15 aspx 手工建立DataSet对象示例 2 7 15 aspx 7 7 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 条件 如grade 3 对DataSet对象的操作示例 7 16 aspx 7 7 3把DataSet对象中的更新写回到数据库 DataSet对象是和数据库断开的 如果要将改变更新到数据库中 就需要借助DataAdapter对象 把DataSet对象中的更新写回到数据库示例 用Session保存Dataset对象 第1次打开时读取原始数据 并将DataSet对象保存到Session中 当单击编辑和删除时 首先从Session中读取DataSet对象 然后对其进行操作 随后再保存到Session中最后如果要保存修改结果 就利用DataAdapter对象 将修改反应到数据库中 如果放弃修改 就重新从数据库中读取原有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年社区工作者考试真题库附答案
- 2026年大学生素质教育活动合同
- 2025年保安员证考试题库及答案
- 2025年科创板股票投资知识题库及答案
- 2025年反假币知识培训应知应会考试题库含答案
- 初中心理健康浙教版八年级上册(边玉芳)第八课 网络是把双刃剑教案设计
- 人工智能识别财报舞弊的实证研究
- 大单元教学设计 八年级上册 第三单元 资产阶级民主革命与中华民国的建立
- 2025年临床执业医师考试技能操作要求试题及答案
- 《丰收中国年》教学设计-2025-2026学年中职基础课-全一册-高教版(2023)-(音乐)-69
- 健康管理实务习题库+参考答案
- 浙江省宁波六校联考2025-2026学年高一上学期11月期中考试英语试卷
- 个人贷款转贷协议书
- 强电工程施工组织设计方案
- 传播学概论课件
- 2024年郑州财税金融职业学院单招职业适应性测试题库及答案详解1套真题题库
- 全国大学生职业规划大赛《智慧健康养老服务与管理》专业生涯发展展示【高职(专科)】
- 2025-2026学年人教版高一化学上学期期中模拟卷(原卷及解析)
- 精神分裂症典型症状及精神分裂症心理护理技巧培训
- 2025年公务员多省联考《申论》真题(安徽B卷)及答案解析
- GB/T 46203-2025科研用生物试剂分类及代码
评论
0/150
提交评论