DataTable和DataSet有什么区别

代码示例:

string sqlcoon = "Server=.;DataBase=abc;uid=sa;pwd=123456";
SqlConnection coon = new SqlConnection(sqlcoon);
string sql = "select * from SmarterCloud_Unit";
SqlCommand cmd = new SqlCommand(sql,coon);
coon.Open();
//SqlDataReader
//SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//DataTable table = new DataTable();
//table.Load(reader);
//MessageBox.Show(table.Rows.Count.ToString());
//this.dataGridView1.DataSource = table;

//SqlDataAdapter
SqlDataAdapter adptr = new SqlDataAdapter(sql, coon);
DataSet ds = new DataSet();
adptr.Fill(ds, "SmarterCloud_Unit");
this.dataGridView1.DataSource = ds.Tables[0];

DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable

DataTable:数据表。   
一:   
SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
DataTable   dt=new   DataTable();   
da.Fill(dt);   
-----------------   
直接把数据结果放到datatable中,   
二:   
SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
DataSet   dt=new   DataSet();   
da.Fill(dt);   
----------------   
数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]   
更常见的用法:   
SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
DataSet   dt=new   DataSet();   
da.Fill(dt,"table1");   
用的时候:这样取datatable:   
dataset["table1"]

从。NET 2.0开始,你可以用一行代码解决转换问题:

DataReader To DataTable

Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

Dim dt As DataTable = New DataTable()

dt.Load(dr)

DataTable To DataReader

Dim dt Ad DataTable = ……

Dim dr As DataTableReader = dt.CreateDataReader()

注意:1. 使用Load方法时,如果DataTable中已经存有数据,新旧数据将合并。(新数据是指从DataReader中读取的)

2. DataTableReader 实现了 IDataReader,尽量使用接口。

3. DataSet 也有类似 Load 和 CreateDataReader 方法。(有示例源码)

请参阅MSDN文档 http://msdn2.microsoft.com/en-us/library/5fd1ahe2.aspx和 http://msdn2.microsoft.com/en-us/library/system.data.dataset.createdatareader.aspx

时间: 2024-11-05 14:43:07

DataTable和DataSet有什么区别的相关文章

DataSet、DataTable、DataRow、DataColumn区别及使用实例

DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的一个表. 公共属性 Columns 获取属于该表的列的集合. DataSet 获取此表所属的 DataSet. DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图. PrimaryKey 获取或设置充当数据表主键的列的数组. Rows 获取属于该表的行的集合. TableName 获取或设

转:DataSet、DataTable、DataRow、DataColumn区别及使用实例

DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的一个表. 公共属性 Columns 获取属于该表的列的集合. DataSet 获取此表所属的 DataSet. DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图. PrimaryKey 获取或设置充当数据表主键的列的数组. Rows 获取属于该表的行的集合. TableName 获取或设

c#中DataTable和DataSet区别

你可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器? 原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途.举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加.删除.修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心

DataTable与DataSet

转自:http://www.cnblogs.com/rjf1979/archive/2010/09/09/1822667.html DataSet包含很多个DataTable 一张表的时候用DataTable就可以,多张表就用DataSet了(datatable是一张表,dataset是表的集合.)可以认为DataSet就是内存中一个数据库,DataTable就是数据库里的表 (注:Datatable是一张表,DataSet是表的集合) =============================

Asp.net 将DataTable 或者DataSet 转换为Json 格式

Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// <summary> /// DataTable 转换成Json 操作类 /// </summary> public static class ConvertJson { #region DataSet转换为Json /// <summary> /// DataSet转换为Json

【C#常用方法】2.DataTable(或DataSet)与Excel文件之间的导出与导入(使用NPOI)

DataTable与Excel之间的互导 1.项目添加NPOI的引用 NPOI项目简介: NPOI是一个开源的C#读写Excel.WORD等微软OLE2组件文档的项目,特点是可以在没有安装Office的情况下对Word或Excel文档进行读写操作.并且对老版本Office(2003-)与新版本Office(2007+)均有较好的支持.NPOI功能非常强大,可以操作Excel或Word文档的各个细节,如果你对NPOI想进行细致的学习,淘宝上有专门有书来讲NPOI,当然也可以访问NPOI的官方网站查

datatable和dataset的区别

DataSet 是离线的数据源 DataTable 是数据源中的表.当然也可以自己建一张虚表.插入数据库中 DataSet是DataTable的容器DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTabledatatable是dataset中的一个表另外datarow是datatable中的一行记录

C# 实现DataTable、DataSet与XML互相转换

/**//// <summary> /// 把DataSet.DataTable.DataView格式转换成XML字符串.XML文件 /// </summary> public class DataToXml { /**//// <summary> /// 将DataTable对象转换成XML字符串 /// </summary> /// <param name="dt">DataTable对象</param> //

iBatis.Net实现返回DataTable和DataSet对象

如题.要返回一个ADO.NET对象好像没有使用ORM的必要,而且从编程的角度看这样的实现一点也不OO,但是实际的开发场景中还是会碰到这种需求的.下面我就借鉴前人的经验,结合实际的示例,再总结一下.如果您认真看完,应该可以体会得到我的一些尝试,而不是人云亦云的照搬代码. 1.获得DbCommand对象 对于SQL语句,方法如下: /// <summary> /// SQL语?句?,?获?取?DbCommand /// </summary> /// <param name=&qu