版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 数据适配器Adapter学习目标学习目标.1.DataAdapter介绍介绍在代码中创建在代码中创建DataAdapter对象对象DataAdapter对象的属性介绍对象的属性介绍DataAdapter对象的方法介绍对象的方法介绍DataAdapter对象的事件对象的事件ADO.NET 断开连接的模型。模型的基本介绍以及讲解DataSet导学第一部分:第一部分:DataAdapter简介简介DataAdapter的基本概念及分类。概念分类ADO.NET 断开连接的模型断开连接的模型vADO.NET提供了以下两种数据访问模型 连接的模型。本模型使用户能使用数据提供程序连接到
2、数据库并对数据库运行SQL命令,命令运行结束后将关闭和数据库之间的连接。 断开连接的模型。本模型使得可以为来自数据源的数据创建内存中的缓存,然后与数据源之间断开连接。 ADO.NET 断开连接的模型(图)断开连接的模型(图)在在ADO.NET中,中,DataSet是数据在内存中的表示形式,是数据在内存中的表示形式,它提供了独立于数据源的关系编程模型。它提供了独立于数据源的关系编程模型。数据库与数据集数据库与数据集之间起桥梁作用之间起桥梁作用DataAdapter的基本概念的基本概念v DataAdapter是和数据集(是和数据集(DataSet)一起使用的对象,)一起使用的对象,它包括在一个数
3、据库连接后用于填充数据集和更新数据源它包括在一个数据库连接后用于填充数据集和更新数据源的一组数据命令,在数据库与数据集之间起桥梁作用。的一组数据命令,在数据库与数据集之间起桥梁作用。v DataAdapter的作用相当于绑定的的作用相当于绑定的DataSet对象和持久的对象和持久的数据存储之间的通道。数据存储之间的通道。v 上面讲的数据存储可以是数据库、上面讲的数据存储可以是数据库、XML文件、文件、Excel、甚、甚至是纯文本。至是纯文本。v DataAdapter是专门为处理脱机数据而设计的。是专门为处理脱机数据而设计的。DataAdapter的分类的分类v根据数据库的不同,将DataAd
4、apter分类。 SqlDataAdapter:不经过OLEDB层直接与SQLServer交互,速度较OleDbDataAdapter快。 OleDbDataAdapter:适用于任何可以用OLEDB数据提供者访问的数据源。 OdbcDataAdapter OracleDataAdapterOLE DB(OLEDB)是微软的战略性的通向不同的数据源的低级应用程序接口。)是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化查询语言(的结构化查询语言(SQL)能力,)能力,
5、还具有面向其他非还具有面向其他非SQL数据类型的通路。数据类型的通路。作为微软的组件对象模型(作为微软的组件对象模型(COM)的一种设计,)的一种设计,OLE DB是一组读写数据的方法(在过去可能被称为渠道)。是一组读写数据的方法(在过去可能被称为渠道)。 什么是什么是OLEDB?XxxDataAdapter对象模型对象模型四种数据命令对四种数据命令对数据库进行读写。数据库进行读写。DataAdapter构造函数构造函数用用DataAdapter填充结果集填充结果集打开和关闭连接打开和关闭连接读取多个表读取多个表第二部分:在代码中创建第二部分:在代码中创建DataAdapter对象对象在代码中
6、创建在代码中创建DataAdapter对象对象v 了解DataAdapter的几种构造函数,可以简化创建DataAdapter对象的过程。v 下面举无参构造函数和参数为SqlCommand对象的构造函数的例子。无参构造函数的例子:无参构造函数的例子: SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand(strSql, con); DataSet ds = new DataSet(); /填充填充DataSet int iCount = da.Fill(ds); /为为dataGridView1绑
7、定数据绑定数据 dataGridView1.DataSource = ds.Tables0; /刷新刷新 dataGridView1.Refresh();参数为参数为SqlCommand对象的构造函数的例子:对象的构造函数的例子: SqlCommand cmd = new SqlCommand(strSql, con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); int iCount = da.Fill(ds); dataGridView1.DataSource = ds.Tables0;
8、dataGridView1.Refresh();注意参数注意参数第二部分课堂作业第二部分课堂作业v利用构造函数为SQL与stringConnection实现课堂演示例子的相同功能。v利用构造函数为SQL与SqlConnection对象实现课堂演示例子的相同功能。用来控制数据阅读或插入、修改、删除或更新的属性。第三部分:第三部分:DataAdapter的属性的属性用来控制与数据集之间通信的属性。DataAdapter的属性的属性属性属性描述描述SelectCommand在数据源中检索数据的数据命令在数据源中检索数据的数据命令InsertCommand在数据源中插入数据的数据命令在数据源中插入数据
9、的数据命令UpdateCommand在数据源中更新数据的数据命令在数据源中更新数据的数据命令DeleteCommand在数据源中删除数据的数据命令在数据源中删除数据的数据命令TableMappingsDataTableMapping 对象的集合,决定对象的集合,决定DataSet中的行与数据源之间的中的行与数据源之间的关系关系DataAdapterSelectCommand、InsertCommand、UpdateCommand、DeleteCommand的应用的应用v 下面的代码演示了这四个属性中的SelectCommand属性的应用。SqlDataAdapter adapter = new
10、 SqlDataAdapter();SqlCommand command = new SqlCommand(SELECT * FROM STUDENT + WHERE SAGE = SAGE, connection);command.Parameters.Add(SAGE,SqlDbType.Int);command.Parameters0.Value = age;adapter.SelectCommand = command;DataAdapterTableMappings属性属性的应用的应用v重点代码演示:SqlDataAdapter adapter = CreateDataAdapter
11、(conn, age);DataSet ds = new DataSet();/Mappings的用法的用法DataTableMapping mapping = adapter.TableMappings.Add(Table, 学生表学生表);mapping.ColumnMappings.Add(SNO, 学生编号学生编号);mapping.ColumnMappings.Add(SName, 学生姓名学生姓名);mapping.ColumnMappings.Add(SDept, 所在院系所在院系);mapping.ColumnMappings.Add(SClass, 所在班级所在班级);map
12、ping.ColumnMappings.Add(SSex, 性别性别);mapping.ColumnMappings.Add(SAge, 年龄年龄);adapter.Fill(ds);dataGridView1.DataSource = ds.Tables学生表学生表;/使用设置好的映射表名字。使用设置好的映射表名字。dataGridView1.Refresh();在这一部分我们重点学习一下Fill和Update方法。DataAdapter有两个重要的方法:Fill()和Update() 。前者从数据源把数据加载至DataSet,后者把数据从DataSet传回数据源。第四部分:第四部分:Dat
13、aAdapter的方法的方法如何填充数据集如何填充数据集v 使用 DataAdapter 对象填充数据集使用使用 Fill() 方法方法填充填充 DataSet 中的表中的表使用使用 Connection 连接数据源连接数据源ConnectionDataAdapter 的的 Fill() 方法方法填充数据集填充数据集SqlDataAdapter 对象名对象名 = new SqlDataAdapter(查询用查询用sql语句语句, 数据库连接数据库连接);创建创建 SqlDataAdapter 对象对象1DataAdapter对象对象. Fill(数据集对象数据集对象, 数据表名称字符串数据表名
14、称字符串);填充填充 DataSet2DataAdapterFill方法方法v Fill方法一共有4种常用的重构方法。 Fill(DataSet) DataSet结果集 Fill(DataTable) DataTable对象 Fill(Int32,Int32,params DataTable) 开始记录索引 要填充的数据表的行数 DataTable对象 Fill(DataSet, Int32,Int32,String) DataSet结果集对象 开始记录的索引 要填充的数据集的行数 表名DataAdapter利用利用Fill方法进行分页方法进行分页v见课堂代码示例(Fill方法进行分页)代码提
15、示:代码提示: 利用Fill的第四个构造函数 Fill(DataSet, StartPageIndex, PageSize, String)如何保存如何保存 DataSet 中的数据中的数据v 把数据集中修改过的数据提交到数据源dataAdapter.Update(dataSet,“student);DataAdapter 的的 Update() 方法方法调用前,要先设置更新需要的相关命令调用前,要先设置更新需要的相关命令可以使用可以使用 SqlCommandBuilder 对象对象ConnectionSqlCommandBuilder 对象对象v利用 SqlCommandBuilder 对象
16、能够自动生成: INSERT 命令 UPDATE 命令 DELETE 命令SqlCommandBuilder builder = new SqlCommandBuilder(已创建的已创建的DataAdapter对象对象);保存保存 DataSet 中的数据中的数据自动生成用于更新的相关命令自动生成用于更新的相关命令1将将 DataSet 的数据提交到数据源的数据提交到数据源2SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter); dataAdapter.Update(dataSet,“student);v步骤:SqlCo
17、mmandBuilder builder = new SqlCommandBuilder(已创建的已创建的DataAdapter对象对象);DataAdapter对象对象. Update(数据集对象数据集对象, 数据表名称字符串数据表名称字符串);DataAdapter 对象小结对象小结vDataAdapter 的主要属性和方法属性属性说明说明SelectCommand 从数据库检索数据的从数据库检索数据的 Command 对象对象方法方法说明说明Fill 向向 DataSet 中的表填充数据中的表填充数据Update将将 DataSet 中的数据提交到数据库中的数据提交到数据库DataAda
18、pterUpdate方法方法v 重点代码演示:填充填充DataSet时的代码:时的代码: adapter.SelectCommand = new SqlCommand(SELECT * FROM”+” STUDENT, conn); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.Fill(ds); dataGridView1.DataSource = ds.Tables0; dataGridView1.Refresh();更新时的代码:更新时的代码: adapter.Update(ds); Message
19、Box.Show(更新成功);DataAdapter对象的事件列表:对象的事件列表:Disposed:当调用Dispose释放组件的时候调用。FillError:在填充操作过程中出现错误时返回。RowUpdated:在对数据源执行命令后的Update过程中发生,试图进行更新,因此激发该事件。RowUpdating:在对数据源执行命令前的Update过程中发生,试图进行更新,因此激发该事件。第五部分:第五部分:DataAdapter的事件的事件DataAdapter的事件的事件代码演示代码演示private void sqlDataAdapter1_RowUpdating(object send
20、er, SqlRowUpdatingEventArgs e) textBox1.Text = 数据正在更新; private void sqlDataAdapter1_RowUpdated(object sender, SqlRowUpdatedEventArgs e) textBox1.Text += 数据更新完毕。; DataGridView 控件控件 vDataGridView 控件强大而灵活地显示数据强大而灵活地显示数据轻松定义控件外观轻松定义控件外观像像 Excel 表格表格一样方便一样方便一行代码一行代码实现数据绑定实现数据绑定可视化可视化操作操作DataGridView 控件重要属性控件重要属性 DataGridView 的重要属性的重要属性属性属性说明说明Columns 包含的列的集合包含的列的集合Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢结构防火设计施工方案
- 2026贵州遵义市正安县人力资源和社会保障局青年就业见习招募笔试备考试题及答案解析
- 2026年温州市龙湾区瑶溪街道办事处公开招聘编外工作人员2人笔试模拟试题及答案解析
- 2026年江药科技第二批次社会招聘3人考试备考题库及答案解析
- 2026浙江温州市瑞安市市场监督管理局仙降市场监督管理所招聘编外人员1人笔试备考题库及答案解析
- 中国儿童幽门螺杆菌感染诊治专家共识课件
- 2026福建事业单位统考龙岩市漳平市招聘31人笔试备考试题及答案解析
- 2025年广西南宁兴宁区“点对点”送工和乡村公益性岗位专管员招聘1人备考练习试题及答案解析
- 2025年冶金工业技能鉴定检测卷及答案详解
- 施工现场气体检测与监测方案
- 2026年安徽城市管理职业学院单招职业适应性测试题库带答案详解(满分必刷)
- 2026年安徽警官职业学院单招综合素质考试题库有答案详解
- 2026年宁夏葡萄酒与防沙治沙职业技术学院自主公开招聘工作人员考试参考试题及答案解析
- 推动职业教育国际化-交流协会的探索与实践
- 2025年“安全生产月”《安全知识》培训考试题库及答案
- 重庆市科学素养大赛题库
- 公司薪酬管理制度公告模板(3篇)
- 湖南白银股份有限公司2026年公开招聘笔试备考题库及答案解析
- 春节后医院后勤工作年度计划课件
- 2026年临汾职业技术学院单招职业倾向性考试题库含答案详解(完整版)
- 2025年宜昌五峰土家族自治县“招才兴业”事业单位人才引进41人笔试历年典型考题(历年真题考点)解题思路附带答案详解
评论
0/150
提交评论