第四讲 数据适配器Adapter

上传人:pu****.1 文档编号:469870747 上传时间:2023-03-28 格式:DOCX 页数:5 大小:72.40KB
返回 下载 相关 举报
第四讲 数据适配器Adapter_第1页
第1页 / 共5页
第四讲 数据适配器Adapter_第2页
第2页 / 共5页
第四讲 数据适配器Adapter_第3页
第3页 / 共5页
第四讲 数据适配器Adapter_第4页
第4页 / 共5页
第四讲 数据适配器Adapter_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《第四讲 数据适配器Adapter》由会员分享,可在线阅读,更多相关《第四讲 数据适配器Adapter(5页珍藏版)》请在金锄头文库上搜索。

1、上课先给同学列出今天要学习的主要内容,主要内容如下:1、 DataAdapter 介绍2、在代码中创建 DataAdapter 对象3、 DataAdapter 对象的属性介绍4、 DataAdapter 对象的方法介绍5、 DataAdapter 对象的事件第一个知识点:DataAdapter介绍1、ADO.NET 提供的两种数据访问模型:非断开连接模型和断开连接模型。连接的模型。本模型使用户能使用数据提供程序连接到数据库并对数据 库运行 SQL 命令,命令运行结束后将关闭和数据库之间的连接。 断开连接的模型。本模型使得可以为来自数据源的数据创建内存中的缓 存,然后与数据源之间断开连接。2、

2、接着重点引出,我们这节课学习的主要是断开连接技术,接着引出断开连接模型:DataSet 对象D曲巾bM寸彖DataAdapter数据库在断开模型中,重点讲解几个概念:Dataset的概念,DataAdapter的概念。Dataset 的概念: DataSet是ADO.NET的中心概念。 可以把DataSet当成内存中的数据库,DataSet是不依赖与数据库的独立数据集合。 所谓独立,就是说,即使断开数据链路,或者关闭数据库, DataSet 依然是可用的。DataAdapter 的概念: DataAdapter是和数据集(DataSet)一起使用的对象,它包括在一个数据库连接后用于填充 数据集

3、和更新数据源的一组数据命令,在数据库与数据集之间起桥梁作用。 DataAdapter的作用相当于绑定的DataSet对象和持久的数据存储之间的通道。 上面讲的数据存储可以是数据库、XML文件、Excel、甚至是纯文本。 DataAdapter 是专门为处理脱机数据而设计的。根据数据库的不同, 将 DataAdapter 进行分类, 我们在下面重点讲解一下 SqlDataAdapter,为了大家方便SqlDataAdapter在连接SQL Server数据库的时候为什么 效率高(不经过 OLEDB 层直接与 SQLServer 交互,速度较 OleDbDataAdapter 快。), 引出了 0

4、LEDB的概念:OLE DB (OLEDB)是微软的战略性的通向不同的数据源的低 级应用程序接口。 OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC) 的结构化查询语言(SQL)能力, 还具有面向其他非SQL数据类型的通路。 作为微软的组件对象模型(COM )的一种设计, OLE DB 是一组读写数据的方法(在过去可能被称为渠道)。第二个知识点:在代码中创建 DataAdapter 对象 了解 DataAdapter 实例化的几种方法,并为同学现场显示这个例子的重点代码,诱 导学生自己完成其中的一种。参数为SqlCommand对象的构造函数的例子:SqlCommand cm

5、d = new SqlCommand(strSql, con);SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();int iCount = da.Fill(ds);dataGridView1.DataSource = ds.Tables0; dataGridView1Refresh();当堂布置课堂作业:利用构造函数为SQL与stringConnection实现课堂演示例子的 相同功能。第三个知识点:DataAdapter对象的属性的介绍属性描述SelectCommand在数据源中检索数据的数据命令In

6、sertCommand在数据源中插入数据的数据命令UpdateCommand在数据源中更新数据的数据命令DeleteCommand在数据源中删除数据的数据命令TableMappingsDataTableMapping对象的集合,决定DataSet中的行与数据源之间的关系UpdateBatchSize决定批进程支持,指出在批处理中可执行的命令的数量分别给学生介绍一些上面这些重点的属性,然后给学生演示一个SelectCommand属性 的用法,下面是示例代码:SqlDataAdapter adapter = new SqlDataAdapter();SqlCommand command = new

7、 SqlCommand(SELECT * FROM STUDENT + WHERE SAGE = SAGE, connection);command.Parameters.Add(SAGE,SqlDbType.lnt); command.Parameters0.Value = age;adapter.SelectCommand = command;接下来是 TableMappings 属性的应用,讲解一下 TableMappings 的作用什么?获取一 个集合,它提供源表和 DataTable 之间的主映射。下面给一段主要代码示例:SqlDataAdapter adapter = Create

8、DataAdapter(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,所在班级”); mapping.C

9、olumnMappings.Add(SSex,性别); mapping.ColumnMappings.Add(SAge,年龄);adapter.Fill(ds);dataGridViewl.DataSource = ds.Tables学生表;/使用设置好的映射表名字。dataGridViewl.Refresh();第四个知识点:DataAdapter对象方法的介绍:在这个环节中重点讲一下 Fill 文件和 Update 文件。前者从数据源把数据加载至DataSet,后者把数据从DataSet传回数据源。先给学生讲解Fill方法:并一个一个大致的讲解一下Fill方法的4个重载。 接着,重点用代码

10、演示一下如何用Fill方法实现分页的技术,并给学生提示用Fill(DataSet, StartPageIndex, PageSize, String)来实现。当做一个课堂作业布置给学生。接着讲解第二个方法Update,并讲解Update方法的作用:从名为“Table”的 DataTable 为指定的 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。更新是逐行进行的。对于每个已插入、修改和删除的行, Update 方法会确定已对 其执行的更改的类型(插入、更新或删除)。根据更改类型,执行 Insert、Update 或 Delete

11、 命令模板将已修改的行传播给数据源。当应用程序调用 Update 方法时, DataAdapter 根 据 DataSet 中配置的索引顺序为每一行检查 RowState 属性,并迭代执行所需的 INSERT、UPDATE 或 DELETE 语句。例如,由于 DataTable 中行的排序, Update 可 能先执行一个 DELETE 语句,接着执行一个 INSERT 语句,然后再执行另一个 DELETE 语句。应注意,这些语句不是作为批处理进程执行的;每一行都是单独更新的。下面是 重点代码的提示:第五个知识点:DataAdapter对象事件的使用: 给学生列出事件列表,并大致讲解一下事件的

12、使用时机: Disposed:当调用Dispose释放组件的时候调用。 FillError :在填充操作过程中出现错误时返回。 RowUpdated:在对数据源执行命令后的Update过程中发生,试图进行更新,因此激发 该事件。RowUpdating:在对数据源执行命令前的Update过程中发生,试图进行更新, 因此激发该事件。并演示一个例子给学生,重点代码提示如下:填充加脚时的代码:adapter.SelectCommand = new SqlCommand(irSELECT * FROM,r STUDENT; conn);SqlCommandBuilder builder = new Sq

13、tCommandBuilderf adapter);adapter.Fill(ds);d ata Grid View 1.D ataS ourc e = ds.TablesO;dataGrid ViewkRefresh);更新时的代码丁adapter.Upd ate(ds);M essa geBox.Sh o w(更新成功);最后做一个总结,并布置课下作业:textBoxI .Text二“数据正在更新textB ox1 Text += ”数据更新完毕private void sqDataAdapter1_Rowllpdating(object sender: SqtRowllpdatjngEventArgs e)private void sqlDataAdaptef1_Rowllpdated(object sender: SqfRowllpdatedEveiitArgs e)承从登录界面.实现当输入正确的用户名和密码时,进入 frmDemo2这个窗体。在fnnDemo2窗体中实现:加载窗体时,在滋境念姒姒y中显示Employee表中的数据。 加载窗体时,在组合框中动态绑定部门名称Department表。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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