ADO.NET中的DataSet和DataAdapter
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的更多相关文章
- ADO.NET中的DataSet和DataReader
ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader.DataSet提供内存中关系数据的表现--包括表和次序.约束等表间的关系的完整数据集合.Da ...
- 第九周学习笔记-ADO.Net中DataSet的应用
一.知识点描述 1.含义:DataSet是ADO.Net的断开式结构的核心组件,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据.DataSet包含一个或多个DataTable ...
- 【转】ADO.NET中的五个主要对象
Connection 物件 Connection 对象主要是开启程序和数据库之间的连结.没有利用连结对象将数据库打开,是无法从数据库中取得数据的.这个物件在ADO.NET 的最底层,我们可以自己 ...
- [No0000BC]ADO.NET中的几个主要对象
ADO 指 ActiveX 数据对象(ActiveX Data Objects). 从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO ...
- ADO.NET 中的数据并发
当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方 ...
- ADO.Net中DataSet的应用
一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,Data ...
- ADO.NET中的五个主要对象
Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...
- [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)
Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 ...
- [转载]ADO.NET中的五个主要对象
Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...
随机推荐
- 高可用集群heartbeat全攻略
heartbeat的概念 Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(r ...
- 使用BeanUtils操作Bean属性
package com.wzh.test.beanutils; import java.lang.reflect.InvocationTargetException; import java.text ...
- ruby迭代器枚举器
迭代器一个迭代器是一个方法,这个方法里面有yield语句,使用了yield的方法叫做迭代器,迭代器并非一定要迭代,与传递给这个方法的块进行数据传输 yield将数据传给代码快,代码块再把数据传输给yi ...
- Java中的GC操作及相关概念
一.GC Roots Tracing的基本思路:通过一系列名为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径称为引用链(Reference Chai ...
- 并发之 volatile
使用volatile: 每次读取volatile变量的值,都强制从主存读取最新的值. (每次修改volatile变量都会同步到主存中) i++ 之所以不能保证线程安全,是因为volatile不能解决非 ...
- Dephi的同一个线程支持累次Execute吗
Suspend放到循环里------解决方案--------------------执行完不结束只休眠.另外还需要线程池.------解决方案-------------------- while ...
- ZOJ 2404 Going Home 【最小费用最大流】
思路: 把房子和人看成点,加上源点和汇点. 源点和每个人连容量为1,权值为0的边. 每个人和每个房子连容量为1,权值为距离的边. 每个房子和汇点连容量为1,权值为0的边. #include<st ...
- Wireshark "The NPF driver isn’t running…"
(1)如果你使用的是Linux.Ubuntu系统,请用 >$ su Administrator命令切换到拥有最高权限的帐号,然后再输入命令:“net start npf”(如果不行自己查找类似命 ...
- Kindle3与亚马逊
喜欢上亚马逊,偶尔会买些免费或极低价格的书,但始终无法把这些书传到“我的”kindle3上,原因是kindle3无法在中国注册,又绕不开DRM,同时经历了换屏.换主板,早已不是原来的kindle了.今 ...
- 移动开发 android 入门开发 阶段视频
一直想把 android 的开发学习录制成视频,这里录制了一部分供大家学习. http://www.chuanke.com/s5402069.html 到这里,文档,源码,视频基本就全了,祝愿大家能够 ...

