SqlDataAdapter与DataSet

       DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。

       DataSet 是 ADO. NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。DataSet 由一组 DataTable 对象组成:

dataset所有数据都加载在内存上执行的,可以提高数据访问速度,提高硬盘数据的安全性。极大的改善了程序运行的速度和稳定性。

     因为DataSet可以看做是内存中的数据库,也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable),而且每一 DataSet中的数据表(DataTable)对应一个数据源中的数据表(Table)或是数据视图(View)。数据表实质是由行(DataRow)和 列(DataColumn)组成的集合为了保护内存中数据记录的正确性,避免并发访问时的读写冲突,DataSet对象中的DataTable负责维护每一条记录,分别保存记录的初始状态和当前状态。从这里可以看出DataSet是与只能存放单张数据表的Recordset是截然不同的概念。

DataSet对象的三大特性

(1) 独立性。DataSet独立于各种数据源。

(2) 离线(断开)和连接。

(3) DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。

DataSet使用方法

(1) 把数据库中的数据通过DataAdapter对象填充DataSet。

(2) 通过DataAdapter对象操作DataSet实现更新数据库。

(3) 把XML数据流或文本加载到DataSet

SqlDataAdapter是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射
Fill(它可更改DataSet中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet中的数据)来提供这一桥接。当SqlDataAdapter填充 DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。

问:什么是DataAdapter?

答:DataAdapter对象在DataSet与数据之间起桥梁作用

提示:

    你如果只需要执行SQL,就没必要用到DataAdapter

  直接cmd.ExecuteNoQuery()就OK了

 

    sqlDataadapter的作用是实现Dataset和DB之间的桥梁

  比如将对DataSet的修改更新到数据库

  如果只是执行一句SQL或SP,用SqlCommand的Execute系列方法就可以了

 

 SqlDataAdapter的UpdateCommand的执行机制是

  当调用SqlDataAdapter.Update()时,检查DataSet中的所有行,然后对每一个修改过的Row执行SqlDataAdapter.UpdateCommand

  以就是说如果未修改DataSet重的数据,SqlDataAdapter.UpdateCommand是不可能执行的

 

时间: 2024-10-08 23:50:05

SqlDataAdapter与DataSet的相关文章

DataSet.AcceptChanges()后 SqlDataAdapter.Update(DataSet)时数据无法更新数据库 希望路过高人指点 谢谢了

问题描述 DataSet.AcceptChanges()后SqlDataAdapter.Update(DataSet)时数据无法更新数据库希望路过高人指点谢谢了 解决方案 解决方案二:自己顶解决方案三:有没异常出现?解决方案四:或是DataSet.HasChanges=false?解决方案五:没有任何异常解决方案六:我是你下面的并发冲突的贴,还没解决,头痛.DataSet.AcceptChanges()好像放在update的后面.解决方案七:放在update后面就起不到作用了我是GridView

ADO.NET读书笔记系列之------SqlDataAdapter对象

ado|笔记|对象 一.特点介绍 1.表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接. 2.在SqlDataAdapter和DataSet之间没有直接连接.当完成SqlDataAdpater.Fill(DataSet)调用后,两个对象之间就没有连接了. 二.使用介绍 1.创建SqlDataAdapter     ...     string strSQL="Select * from Customers";     SqlCommand

C#中SqlDataAdapter的使用小结

SqlDataAdapter概述 SqlDataAdapter是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据.SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射 Fill(它可更改DataSet中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet中的数据)来提供这一桥接.当SqlDataAdapter填充 DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在). )我们可以通过

DataSet与DataTable的区别示例介绍_实用技巧

DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTable:数据表. 一: SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); da.Fill(dt); ----------------- 直接把数据结果放到 datatable中, 二: SqlDataAdapter da=new SqlDataAdapter(cmd

c#中的DataSet深入探讨及RecordSet的比较

虽说ADO.NET是 ADO在.Net平台下得后继版本,但二者的区别是很大的.突出表现在ADO中的RecordSet对象和ADO.NET中的DataSet对象.RecordSet其实也是非常灵活的一个对象,微软公司推出它也是煞费苦心,如:RecordSet可以离线操作数据库教程,性能优良,效率较高等等这些都让当时的程序员为之一振.RecordSet虽然已经很复杂,但DataSet却比RecordSet复杂的多,我们知道每一DataSet往往是一个或多个DataTable 对象的集合,这些对象由数

请教:两种显示数据集合方式的区别SqlDataReader 和SqlDataAdapter

问题描述 方式1:SqlConnectionconn=db.Creatconn();//db.creatconn是在DB类里的连接数据库方法conn.Open();SqlCommandcmd=newSqlCommand("selectEmployeeID,LastName,FirstNamefromemployees",conn);SqlDataReadersdr=cmd.ExecuteReader();方式2:SqlConnectionconn=db.Creatconn();SqlD

语言-SqlDataAdapter和SqlComand有什么区别,什么时候用SqlDataAdapter?

问题描述 SqlDataAdapter和SqlComand有什么区别,什么时候用SqlDataAdapter? SqlDataAdapter和SqlComand有什么区别,什么时候用SqlDataAdapter?是在vs语言中 解决方案 http://wenku.baidu.com/link?url=BymhngOjCT9aL6Jc0SoRj5G5IuCOgXGZBMqQHLU8VrCYA1FE43NxMclo6KJJc42QCgIuALNgcsEBnz73popxXxuILq2-mvsMZYk

请问如何使用dataset来更新数据库?

问题描述 我在程序中已经有一个存在数据的DATASET,而DATASET中的唯一一个表结构与将要更新的SQLSERVER中的表TEST1是结构一致的我想要将这个DATASET中的数据直接更新到数据库表TEST1中,请问该如何做啊? 解决方案 解决方案二:System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update()解决方案三:我的写法是这样的,SqlConnectionobjConn=newSqlConnection(sConnectionSt

.net中DataTable DataSet DataView使用方法

本篇文章主要介绍DataTable,DataSet的使用方法,属性总结型,因此只抛出重点.关于DataTable,DataSet这里简要说明下:dataset是数据集,可以包含datatable,以及各个数据表之间的关系等,datatable是数据表,有列columns,行rows等.DataView是视图,用来创建DataTable中所存储数据的不同视图,通常用于数据绑定,方法如下:  代码如下 复制代码  DataView DV = ds.Tables["表名"].DefaultV