DataSet和DataTable

DataSet是一个数据集合,存储在内存中,算是一个临时的数据库。

个人觉得,不是太常用了,DataTable或者直接用List<model>存数据比这个好。

还是也说一下使用方法吧。

DataSet ds =new DataSet("school");
DataTable dt = new DataTable("stu");
dt.columns.Add("列名",typeof(string));

//注意DataRow dr =new DataRow();  不能这样用,为什么呢?看下面绿字

/*

DataRow的构造方法是 protected internal的,你是调用不到的。

但是跟DataRow同一个程序集的 DataTable可以调。

*/

DataRow dr = dt.NewRow();
dr["列名"] ="xxx";
dt.Rows.Add(dr);
ds.Tables.Add(dt);

DataAdapter

该类是一个适配器模式的应用。那么这个适配器究竟适配了什么呢?

DataAdapter适配了DataTable和DataReader返回值的适配。

string conn ="";   //连接字符串
string sql =""; //sql语句
/*DataAdapter是对 Connection、Command、以及DataReader的封装 */
DataAdapter da =new DataAdapter(sql,conn);
DataTable dt =new DataTable();
/* *****说明******
1. 先构造好列,再填充的话,会提高效率。
2. Fill(0,10,dt);是一种分页方式,适用于小项目。
去一页,读全部!
*/
da.Fill(,,dt);

推荐使用DataReader

1.一种常用获取表的方式

//简写哈,简写
DataSet ds =new DataSet();
DataAdapter da =new DataAdapter(SQL语句,连接字符串)
da.Fill(ds);
//其实,真的做项目,这种方式获取表并不推荐。
DataTable dt =ds.Tables[];

2.推荐做法

//还是简写哈,简写
using(Connection conn =new Connection("连接字符串"))
{
using(Command cmd =conn.CreateCommand())
{
using(DataReader reader = cmd.ExecuteReader())
{
DataTable dt =new DataTable();
dt.Load(reader);
}
}
}

DataSet在何种情况下使用?

1.C/S模式下

在C/S模式下使用DataSet。

2.在B/S模式下

在B/S模式下使用DataSet。B/S模式下(ASP.NET)使用DataSet,有1000个请求,

Web服务器内存中就会有1000个DataSet。是不是要用,还是自己取舍。

 
 

ADO.NET中的DataSet和DataAdapter的更多相关文章

  1. ADO.NET中的DataSet和DataReader

    ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader.DataSet提供内存中关系数据的表现--包括表和次序.约束等表间的关系的完整数据集合.Da ...

  2. 第九周学习笔记-ADO.Net中DataSet的应用

    一.知识点描述 1.含义:DataSet是ADO.Net的断开式结构的核心组件,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据.DataSet包含一个或多个DataTable ...

  3. 【转】ADO.NET中的五个主要对象

    Connection 物件    Connection 对象主要是开启程序和数据库之间的连结.没有利用连结对象将数据库打开,是无法从数据库中取得数据的.这个物件在ADO.NET 的最底层,我们可以自己 ...

  4. [No0000BC]ADO.NET中的几个主要对象

    ADO 指 ActiveX 数据对象(ActiveX Data Objects). 从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO ...

  5. ADO.NET 中的数据并发

    当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方 ...

  6. ADO.Net中DataSet的应用

    一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,Data ...

  7. ADO.NET中的五个主要对象

    Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...

  8. [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)

    Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 ...

  9. [转载]ADO.NET中的五个主要对象

    Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...

随机推荐

  1. iPhone的定位技术与Core Location框架

    来源:http://www.cnblogs.com/lovecode/archive/2011/12/24/2300579.html iPhone定位来源通常有:1. GPS定位 2. WiFi定位 ...

  2. gomobile 真机 log 打出的日志跟踪

    go mobile 开发的应用,真机调试时,我们期望看到log包打出的日志, 这时候就需要借用 Android Device Monitor 了. 我们的 go 代码中用最简单的 log.Printl ...

  3. nyoj 61 传纸条

    点击打开链接 传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做 ...

  4. nyoj 54-小明的存钱计划

    点击打开链接 小明的存钱计划 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且 ...

  5. Asp.net把UTF-8编码转换为GB2312编码

    系统采用的UTF-8编码,而一些支持系统使用的是GB2312编码. 不同编码的页面.脚本之间互相引用,就会产生乱码的问题,解决方法就是统一成一种编码.asp.net 中,如果要修改输出页面的编码,可以 ...

  6. 什么是条带化(striping) ?(转载)

    条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法.简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法. 许多情况下,这是通过硬件控制器来完成的. ...

  7. Open XML SDK 在线编程黑客松

    2015年2月10日-3月20日,开源社 成员 微软开放技术,GitCafe,极客学院联合举办" Open XML SDK 在线编程黑客松 ",为专注于开发提高生产力的应用及服务的 ...

  8. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

  9. git克隆项目到一个非空目录

    这只是记录: 1. 进入非空目录,假设是 /workdir/proj1 2. git clone --no-checkout https://git.oschina.net/NextApp/platf ...

  10. linux下OpenCV的安装配置

    1 安装cmake及一些依赖库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavc ...