转自:http://www.cnblogs.com/rjf1979/archive/2010/09/09/1822667.html

DataSet包含很多个DataTable 
一张表的时候用DataTable就可以,多张表就用DataSet了(datatable是一张表,dataset是表的集合。)
可以认为DataSet就是内存中一个数据库,DataTable就是数据库里的表

(注:Datatable是一张表,DataSet是表的集合)

============================= 
DataSet是数据的脱机容器。它不包含数据库连接的概念,   实际上存储在DataSet中的数据不一定来源于数据库。数据集(DataSet)由一组数据表组成,每个表都有一些数据列和数据行。除了定义数据外,还可以在DataSet中定义表之间的链接。

数据表非常类似于物理数据库表,它由一些带有特定属性的列组成,可能包含0行或多行数据。数据表也可以定义主键码(可以是一个列或多个列),列上也可以包含约束。 
---- 
以上文字摘录自《C#高级编程第3版》的相关章节

============================================

你可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?

原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、删除、修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心数据库,这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。

DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable
DataSet你可以把他看成是个数据库,可以包括表,视图等。

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"]

DataTable与DataSet的更多相关文章

  1. .Net中List<T> 泛型转成DataTable、DataSet

    在开发过程过程中有时候需要将List<T>泛型转换成DataTable.DataSet,可以利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. 1.List<T& ...

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

    Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// < ...

  3. DataTable,DataSet,DataRow与DataView

    DataTable和DataSet可以看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?原因是,这 ...

  4. DataTable和DataSet有什么区别

    DataTable和DataSet有什么区别 DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable   DataTab ...

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

    DataTable与Excel之间的互导 1.项目添加NPOI的引用 NPOI项目简介: NPOI是一个开源的C#读写Excel.WORD等微软OLE2组件文档的项目,特点是可以在没有安装Office ...

  6. datatable和dataset的区别

    DataSet 是离线的数据源 DataTable 是数据源中的表.当然也可以自己建一张虚表.插入数据库中 DataSet是DataTable的容器DataSet可以比作一个内存中的数据库,DataT ...

  7. c#中DataTable和DataSet区别

    你可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器? 原因 ...

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

    如题.要返回一个ADO.NET对象好像没有使用ORM的必要,而且从编程的角度看这样的实现一点也不OO,但是实际的开发场景中还是会碰到这种需求的.下面我就借鉴前人的经验,结合实际的示例,再总结一下.如果 ...

  9. 对DataTable(或者DataSet)修改后,提交修改到数据库

    http://blog.csdn.net/nidexuanzhe/article/details/8228832 说明:通常我们在做数据库交互时,并不一定要使用特定的SQL语句来更新数据,.NET F ...

随机推荐

  1. 使用 IN 的子查询

    通过 IN(或 NOT IN)引入的子查询结果是一列零值或更多值.子查询返回结果之后,外部查询将利用这些结果. 下列查询会找到所有曾出版过商业书籍的出版商的名称. USE pubs SELECT pu ...

  2. CSipSimple结构浅析

    最近做一个VOIP的项目,调研了CSipSimple.都说CSipSimple结构清晰,但是代码下下来看了一下,还是一头雾水,不知从何看起.于是想到从最简单的打电话开始,借助网上一篇博文"C ...

  3. Jmeter—6 CSV Data Set Config 通过文件导入数据

    线程组循环次数大于1的时候,请求里每次提交的数据都相同.有的系统限制了不能提交相同数据,我们通过 CSV Data Set Config 加载csv文件数据. 1 创建一个文本文件,输入参数值保存为. ...

  4. RFID Hacking④:使用ProxMark3 破解门禁

    文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! 0×00 前言 国际黑客大会Defcon传统之一:开锁!因为黑客认为锁也是一种安全挑战.我们在黑客题材电影.电视剧中也常常 ...

  5. maven .assembly

    配置文件中 配置好Assemblyc插件. 功能:打依赖jar包. java代码如下: <assembly xmlns="http://maven.apache.org/plugins ...

  6. C语言之EOF和feof()

    EOF用于判断所操作的文件是否已经读到文件结束,是在stdio.h文件中定义的符号常量,值为-1. 即当系统读取到文件结尾,所返回的一个信号值(也就是-1). EOF不是可输出字符,因此不能在屏幕上输 ...

  7. java中时间类型的问题

    时间类型:System.currentTimeMillis() 获得的是自1970-1-01 00:00:00.000 到当前时刻的时间距离,类型为longimport java.sql.Date d ...

  8. sqlserver08评估期已过的解决方法

    打开sqlserver出现提示:评估期已过.有关如何升级的测试版软件的信息,请访问http://www.microsoft.com/sql/howtobuy 解决方法如下: 第一步:进入开始菜单--- ...

  9. linux dns 连外网

    以下设置对所用的Linux系统如Redhat/Ubuntu/Debian/CentOS等都有效,但您必须是管理员root或者具有管理员权限 vim /etc/resolv.conf 在其中加入: na ...

  10. c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...