版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库访问技术数据库访问技术ADO.NET程序设计程序设计n第第1章章 以数据为中心的运用程序和以数据为中心的运用程序和 ADO.NETn第第2章章 衔接数据源衔接数据源n第第3章章 执行衔接环境下的数据库操作执行衔接环境下的数据库操作n第第4章章 构建构建 DataSet n第第5章章 运用运用 ADO.NET 读取和写入读取和写入 XMLn第第6章章 从现有数据源构造数据集从现有数据源构造数据集n第第7章章 构建和运用构建和运用 ADO.NET 的的 Web 效力效力n配置配置 DataAdapter DataAdapter 以检索信息以检索信息n运用运用 DataAdapter Data
2、Adapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后台数据源更新后台数据源n将数据更改保管到数据源将数据更改保管到数据源n冲突处置冲突处置 第第6章章 从现有数据源构造数据集从现有数据源构造数据集 配置配置 DataAdapter DataAdapter 以检索信息以检索信息 nDataAdapternXxxDataAdapter对象模型对象模型nDataAdapter 类的属性和方法类的属性和方法n创建运用新创建运用新 SELECT 语句的语句的 DataAdaptern创建运用现有存储过程的创建运用现有存储过程的 Dat
3、aAdapter6.1 配置配置 DataAdapter 以检索信息以检索信息 多媒体演示多媒体演示 创建与填充数据集创建与填充数据集n多媒体演示多媒体演示 创建和填充一个数据集的创建和填充一个数据集的概览概览DataAdapter数据源数据源数据适配器数据适配器数据表数据表数据表数据表数据集数据集数据适配器数据适配器填充填充更新更新填充填充更新更新6.1.1 DataAdapterDataAdapter续续n数据适配器是数据集与数据源交互的桥梁数据适配器是数据集与数据源交互的桥梁n使相当于数据源本地拷贝的数据集可以与数据源使相当于数据源本地拷贝的数据集可以与数据源之间进展交互之间进展交互n为
4、数据库提供的主要两种数据适配器为数据库提供的主要两种数据适配器nSqlDataAdapter:不经过:不经过OLEDB层直接与层直接与SQLServer交互,速度较交互,速度较OleDbDataAdapter快快nOleDbDataAdapter:适用于任何可以用:适用于任何可以用OLEDB数据数据提供者访问的数据源提供者访问的数据源6.1.1 DataAdapterXxxDataAdapter对象模型对象模型sp_SELECTXxxCommandSelectCommandUpdateCommandInsertCommandDeleteCommandXxxDataAdapterXxxComma
5、ndXxxCommandXxxCommandXxxConnectionsp_UPDATEsp_INSERTsp_DELETEXxxDataReader6.1.2 XxxDataAdapter对象模型对象模型XxxDataAdapter对象模型续对象模型续6.1.2 XxxDataAdapter对象模型对象模型XxxDataAdapter对象模型续对象模型续nCommand 对象对象n经过数据适配器来读取数据源信息的命令对象经过数据适配器来读取数据源信息的命令对象,并将其保管在数据适配器的,并将其保管在数据适配器的SelectCommand属属性中性中n经过数据适配器可以将数据集中的改动提交到经
6、过数据适配器可以将数据集中的改动提交到数据源的数据源的Command对象中,并保管在数据适配对象中,并保管在数据适配器的器的InsertCommand、UpdateCommand和和DeleteCommand属性中属性中nDataTableMapping数据表映射集合数据表映射集合nDataTableMapping集合保管了数据集中的表、字集合保管了数据集中的表、字段与数据库中的表、字段的映射关系段与数据库中的表、字段的映射关系6.1.2 XxxDataAdapter对象模型对象模型DataAdapter 类的属性和方法类的属性和方法6.1.3 DataAdapter 类的属性和方法类的属性和
7、方法n数据适配器的属性数据适配器的属性nSelectCommand 从数据源中读取数据从数据源中读取数据nInsertCommand 将数据由数据集插入数据源将数据由数据集插入数据源nUpdateCommand 将数据集中更新的行写回数据源将数据集中更新的行写回数据源nDeleteCommand 在数据源中删除数据在数据源中删除数据DataAdapter 类的属性和方法续类的属性和方法续n数据适配器的方法数据适配器的方法nFill() 运用由运用由SelectCommand属性指定的属性指定的Select语句语句从数据源中读取从数据源中读取/更新数据到数据集更新数据到数据集nUpdate()
8、对数据集对数据集DataTable对象中特定的行调用执对象中特定的行调用执行行Insert、Delete、Update操作的对应的命令对象操作的对应的命令对象6.1.3 DataAdapter 类的属性和方法类的属性和方法创建运用新创建运用新 SELECT 语句的语句的 DataAdaptern创建一个执行创建一个执行SELECT语句的数据适配器语句的数据适配器n对非衔接方式运用以只读方式访问数据对非衔接方式运用以只读方式访问数据n创建数据适配器的两种方法创建数据适配器的两种方法n运用数据适配器配置导游运用数据适配器配置导游n本人手工完成程序代码本人手工完成程序代码n在定义数据适配器时必需指定
9、在定义数据适配器时必需指定n一个用于查询的一个用于查询的SELECT语句语句n一个新的或者曾经存在的数据库衔接一个新的或者曾经存在的数据库衔接Visual Basic 例如例如C# 例如例如6.1.4 创建运用新创建运用新 SELECT 语句的语句的 DataAdapter创建运用现有存储过程的创建运用现有存储过程的 DataAdaptern可以编程创建一个执行存储过程可以编程创建一个执行存储过程n为为SelectCommand指定一个存储过程指定一个存储过程n假设需求可以为假设需求可以为InsertCommand、UpdateCommand和和DeleteCommond指定存储过程指定存储过
10、程n运用导游方式或者手工编码方式创建数据适配器运用导游方式或者手工编码方式创建数据适配器n必需指定必需指定n一个新的或者曾经存在的数据库衔接一个新的或者曾经存在的数据库衔接n调用的存储过程调用的存储过程n实际实际Visual Basic 例如例如C# 例如例如6.1.5 创建运用现有存储过程的创建运用现有存储过程的 DataAdapter第第6章章 从现有数据源构造数据集从现有数据源构造数据集n配置配置 DataAdapter DataAdapter 以检索信息以检索信息 n运用运用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataA
11、dapter DataAdapter 更新后台数据源更新后台数据源n将数据更改保管到数据源将数据更改保管到数据源n冲突处置冲突处置 运用运用 DataAdapter 填充填充 DataSetn运用运用 DataAdapter 填充填充 DataSetn为为 DataSet 指定附加约束指定附加约束n高效地填充高效地填充 Datasetn运用多个运用多个 DataAdapter 填充一个填充一个 DataSet6.2 运用运用 DataAdapter 填充填充 DataSet多媒体演示多媒体演示 数据适配器的数据适配器的 Fill 方法方法n运用数据适配器的运用数据适配器的Fill()方法在数据
12、集对方法在数据集对象中填充与创建象中填充与创建DataTable 对象对象运用运用 DataAdapter 填充填充 DataSetn可以运用数据适配器来填充数据集可以运用数据适配器来填充数据集n调用数据适配器的调用数据适配器的Fill()方法方法nFill()方法执行方法执行SelectCommandn运用查询结果的内容和构造填充数据集中的数据运用查询结果的内容和构造填充数据集中的数据表表n可以经过以下方法提高性能可以经过以下方法提高性能nDataSet.EnforceConstraints=Falsen对对DataTable 对象调用对象调用BeginLoadData()方法方法Visua
13、l Basic 例如例如C# 例如例如6.2.1 运用运用 DataAdapter 填充填充 DataSet为为 DataSet 指定附加约束指定附加约束n可以在数据构造未知的情况下填充数据集可以在数据构造未知的情况下填充数据集n数据集的数据构造在设计阶段未知数据集的数据构造在设计阶段未知n在运转时根据得到的数据来确定数据集的数据构在运转时根据得到的数据来确定数据集的数据构造造n可以在运转时经过数据适配器控制如何创建并生可以在运转时经过数据适配器控制如何创建并生成数据集的数据构造成数据集的数据构造Visual Basic 例如例如C# 例如例如6.2.2 为为 DataSet 指定附加约束指定
14、附加约束为为 DataSet 指定附加约束续指定附加约束续6.2.2 为为 DataSet 指定附加约束指定附加约束n运用运用MissingSchemaAction属性控制数据构造生成属性控制数据构造生成nAdd 添加时不保管主键信息添加时不保管主键信息nAddWithKey 添加时主键信息载入添加时主键信息载入DataTable 对象对象nError 用于必需按照事先定义的构造的验证用于必需按照事先定义的构造的验证nIgnore 忽略结果集中多出的表和列忽略结果集中多出的表和列aDataAdapter.MissingSchemaAction = MissingSchemaAction.Add
15、 aDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey aDataAdapter.MissingSchemaAction = MissingSchemaAction.Error aDataAdapter.MissingSchemaAction = MissingSchemaAction.Ignoren调用调用FillSchema()方法建立一个新的数据集的数据构造方法建立一个新的数据集的数据构造nFillSchema()方法只是将数据构造的信息取到数据集与方法只是将数据构造的信息取到数据集与数据表数据表nFillSc
16、hema()方法的语法方法的语法naDataTableArray = aDataAdapter.FillSchema(aDataSet,_nSchemaType.Mapped | SchemaType.Source)nSchemaType的两个属性:的两个属性:Mapped或者或者Source, 用于用于决议能否将数据表映射集合的信息运用到查询结果决议能否将数据表映射集合的信息运用到查询结果为为 DataSet 指定附加约束续指定附加约束续6.2.2 为为 DataSet 指定附加约束指定附加约束高效地填充高效地填充 Datasetn在填充一个数据集前显式地定义数据构造在填充一个数据集前显式地
17、定义数据构造n数据表、数据列以及数据关联在数据被载入前曾数据表、数据列以及数据关联在数据被载入前曾经确定经确定n使数据可以被更高效地载入使数据可以被更高效地载入n如何显式地定义一个数据集的数据构造如何显式地定义一个数据集的数据构造n创建一个类型化的数据集类创建一个类型化的数据集类ndsCustomers.Customers.BeginLoadData()ndaCustomers.Fill(dsCustomers.Customers)ndsCustomers.Customers.EndLoadData()nDataGrid1.DataSource = dsCustomers.Customers.
18、DefaultViewn或者以编程的方式创建数据表、数据列和数据关或者以编程的方式创建数据表、数据列和数据关联等对象联等对象Visual Basic 例如例如C# 例如例如6.2.3 高效地填充高效地填充 Dataset运用多个运用多个 DataAdapter 填充一个填充一个 DataSet n可以运用多个数据适配器填充一个数据集可以运用多个数据适配器填充一个数据集n每个数据适配器填充数据集中一个独立的表每个数据适配器填充数据集中一个独立的表n为每一个数据适配器调用为每一个数据适配器调用Fill()方法方法n在数据集中指定填充哪一个表在数据集中指定填充哪一个表nVisual Basic 例如
19、例如ndaCustomers.Fill(dsCustomerOrders.Customers)ndaOrders.Fill(dsCustomerOrders.Orders)nDataGrid1.DataSource = dsCustomerOrders.Customersn实际实际6.2.4 运用多个运用多个 DataAdapter 填充一个填充一个 DataSet实验实验 A 在断开式运用程序中检索数据在断开式运用程序中检索数据n练习练习 1 查看运用程序查看运用程序 n练习练习 2 创建存储员工信息和运用程序创建存储员工信息和运用程序设置的设置的 DataSet n练习练习 3 加载并显示
20、员工信息加载并显示员工信息 n练习练习 4 指定并运用不同的效力器称号指定并运用不同的效力器称号第第6章章 从现有数据源构造数据集从现有数据源构造数据集n配置配置 DataAdapter DataAdapter 以检索信息以检索信息 n运用运用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后台数据源更新后台数据源n将数据更改保管到数据源将数据更改保管到数据源n冲突处置冲突处置 配置配置 DataAdapter 更新后台数据源更新后台数据源nDataSet 跟踪更改的方式跟踪更改的方式n数
21、据更新命令数据更新命令 n运用数据适配器配置导游设置数据更新命令运用数据适配器配置导游设置数据更新命令6.3 配置配置 DataAdapter 更新后台数据源更新后台数据源多媒体演示多媒体演示 数据集如何记录数据的更改数据集如何记录数据的更改 n数据集是如何记录数据改动的数据集是如何记录数据改动的DataSet 跟踪更改的方式跟踪更改的方式n每个数据行对象都有一个每个数据行对象都有一个RowState属性属性n标识数据集中每一行数据的形状标识数据集中每一行数据的形状n形状的类型形状的类型nDataRowState.Added该行曾经插入到该行曾经插入到数据集数据集nDataRowState.D
22、eleted该行曾经从数据该行曾经从数据集中删除集中删除nDataRowState.Detached该行曾经创建,但未添该行曾经创建,但未添加到数据加到数据集中的集中的DataRowCollectionnDataRowState.Modified该行曾经更改该行曾经更改nDataRowState.Unchanged该行没有发生任何变化该行没有发生任何变化Visual Basic 例如例如C# 例如例如6.3.1 DataSet 跟踪更改的方式跟踪更改的方式DataSet 跟踪更改的方式续跟踪更改的方式续n每个数据集都对每一行数据维护两份拷贝每个数据集都对每一行数据维护两份拷贝n当前版本当前版本
23、DataRowVersion.Currentnif (row.RowState = DataRowState.Added)nrow“FieldName,DataRowVersion.Current n原始版本原始版本DataRowVersion.Originalnif (row.RowState = DataRowState.Deleted)nrow“FieldName,DataRowVersion.Original6.3.1 DataSet 跟踪更改的方式跟踪更改的方式数据更新命令数据更新命令n一个一个SqlDataAdapter或或OleDbDataAdapter对象都有一对象都有一些命令
24、对象可以用来更改数据源的数据些命令对象可以用来更改数据源的数据nInsertCommand nUpdateCommand nDeleteCommandn语法:对语法:对Sql和和OleDb的数据适配器以及各个命令对的数据适配器以及各个命令对象完全一样象完全一样npublic SqlCommand InsertCommand get; set;Visual Basic 例如例如C# 例如例如6.3.2 数据更新命令数据更新命令运用数据适配器配置导游设置数据更新命令运用数据适配器配置导游设置数据更新命令 n可以运用数据适配器导游配置数据更新命令可以运用数据适配器导游配置数据更新命令n导游有以下三种
25、不同的方式产生更新命令导游有以下三种不同的方式产生更新命令n运用运用SQL语句语句n创建一个新的存储过程创建一个新的存储过程n运用曾经存在的存储过程运用曾经存在的存储过程n实际实际6.3.3 运用数据适配器配置导游设置数据更新命令运用数据适配器配置导游设置数据更新命令 第第6章章 从现有数据中构造数据集从现有数据中构造数据集n配置配置 DataAdapter DataAdapter 以检索信息以检索信息 n运用运用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后台数据源更新后台数据源n将
26、数据更改保管到数据源将数据更改保管到数据源n冲突处置冲突处置将数据更改保管到数据源将数据更改保管到数据源n运用运用DataSetDataSet对象的对象的GetChangesGetChanges方法的时机方法的时机n将更改合并到一个将更改合并到一个DataSetDataSet对象对象 n运用运用DataSetDataSet更新数据源更新数据源nDataSetDataSet接受数据更改的方式接受数据更改的方式6.4 将数据更改保管到数据源将数据更改保管到数据源多媒体演示多媒体演示 运用数据适配器的运用数据适配器的Update方法更新方法更新对应的数据源对应的数据源n数据适配器的数据适配器的Upd
27、ate方法更新对应的数方法更新对应的数据源据源运用运用DataSetDataSet对象的对象的GetChangesGetChanges方法的时机方法的时机 n当需求将数据更改传给由另一个对象运用的另一个当需求将数据更改传给由另一个对象运用的另一个类的时候调用类的时候调用GetChanges()方法方法n代码例如代码例如nIf dsCustomers.HasChanges(DataRowState.Modified) Thenn Dim dsTemp As DataSetn dsTemp = dsCustomers.GetChanges(DataRowState.Modified)n DataG
28、rid1.DataSource = dsTemp.Tables(0).DefaultViewnEnd Ifn运用运用GetChanges()方法得到包含该数据集中一切数据方法得到包含该数据集中一切数据更改的数据集的拷贝更改的数据集的拷贝n从数据被载入开场从数据被载入开场 n从从AcceptChanges()方法最后一次被调用开场方法最后一次被调用开场6.4.1 运用运用DataSet对象的对象的GetChanges方法的时机方法的时机 将更改合并到一个将更改合并到一个DataSetDataSet对象对象 n运用运用Merge()方法合并两个数据集:一个原始数据方法合并两个数据集:一个原始数据集
29、以及一个仅包含对原始数据集更改的数据集集以及一个仅包含对原始数据集更改的数据集n代码例如代码例如naDataSet.Merge(anotherDataSet)n被合并的两个数据集要有一样的数据构造被合并的两个数据集要有一样的数据构造6.4.2 将更改合并到一个将更改合并到一个DataSet对象对象 运用运用DataSetDataSet更新数据源更新数据源 n数据适配器的数据适配器的Update()方法对指定的数据表中被更方法对指定的数据表中被更新过的每一行调用适当的新过的每一行调用适当的SQL语句语句nINSERTnUPDATEnDELETEn代码例如代码例如naDataAdapter.Upd
30、ate(aDataSet, aDataTable)Visual Basic 例如例如C# 例如例如6.4.3 运用运用DataSet更新数据源更新数据源 n数据集的数据集的AcceptChanges()方法提交自数据被载入方法提交自数据被载入或自此次调用起一切该数据集的数据更改或自此次调用起一切该数据集的数据更改n代码例如代码例如naDataSet.AcceptChanges()n可以对整个数据集调用可以对整个数据集调用AcceptChanges()方法,或方法,或者对一个者对一个DataTable 对象的一个数据行对象调用对象的一个数据行对象调用n实际实际DataSetDataSet接受数据
31、更改的方式接受数据更改的方式 6.4.4 DataSet接受数据更改的方式接受数据更改的方式 Visual Basic 例如例如C# 例如例如第第6章章 从现有数据中构造数据集从现有数据中构造数据集n配置配置 DataAdapter DataAdapter 以检索信息以检索信息 n运用运用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后台数据源更新后台数据源n将数据更改保管到数据源将数据更改保管到数据源 n冲突处置冲突处置冲突处置冲突处置 n发生冲突发生冲突n检测冲突检测冲突n处理冲突处
32、理冲突6.5 冲突处置冲突处置 发生冲突发生冲突n非衔接环境运用了开放式并发机制非衔接环境运用了开放式并发机制n在一步数据操作完成后数据库锁立刻被释放在一步数据操作完成后数据库锁立刻被释放n非衔接环境运用开放式并发机制保证其他资源对非衔接环境运用开放式并发机制保证其他资源对数据库的同步访问数据库的同步访问n保守式并发机制在整个数据操作过程中坚持数据保守式并发机制在整个数据操作过程中坚持数据库的锁库的锁n举例阐明举例阐明6.5.1 发生冲突发生冲突发生冲突续发生冲突续n在更新数据库时会产生数据冲突在更新数据库时会产生数据冲突n另一个运用或效力能够曾经更改了数据另一个运用或效力能够曾经更改了数据n举例举例n删除曾经不存在的行删除曾经不存在的行n更新曾经被更新的列更新曾经被更新的列n实际实际6.5.1 发生冲突发生冲突检测冲突检测冲突n数据适配器配置导游可以产生用来监测冲突的数据适配器配置导游可以产生用来监测冲突的SQL语句语句n当更新数据库时当更新数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旅游规划委托合同
- 绿色建筑评价体系开发合同
- 石油化工行业绿色生产技术研发投资合同
- 电子支付平台服务合同
- 艺术品收藏交易合同与真伪免责条款
- 品牌推广与营销合作合同
- 蚕茧买卖合同
- 工程建设施工合同
- 担保的合合同
- 太阳能光伏系统建设合同
- 飞鼠养殖技术指导
- 2024输血相关知识培训
- 2023年四川省绵阳市中考初中学业水平考试语文试题【含答案】
- 正大天虹方矩管镀锌方矩管材质书
- 山东省泰安市2022年初中学业水平考试生物试题
- 受贿案例心得体会
- 人教A版高中数学选择性必修第一册第二章直线和圆的方程-经典例题及配套练习题含答案解析
- 图书馆学基础简明教程
- 毕业设计(论文)-液体药品灌装机的设计与制造
- 二年级下册数学教案 -《数一数(二)》 北师大版
- 银行内部举报管理规定
评论
0/150
提交评论