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. Struts2 Annotation 注解配置

    也叫Zero Configuration(零配置),它省去了写xml文件的麻烦,可以直接在类叫进行配置,不用在java文件和xml文件中来回切换. 必须导入struts2-convention-plu ...

  2. eclipse导出jar包

    第一种:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包. 1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项: 2.在弹出的对 ...

  3. android之RatingBar控件用法

    MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarAc ...

  4. oracle 树形SQL

    oracle树形sql查询实例分析   通过此SQL语句  [sql] select  * from tree    查看原始数据如下:     我们要想得到如下的一个树形查询结果如下图所示(包含 R ...

  5. [SQL]SQL类似统计功能的sql文

    declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...

  6. Unity中对象池的使用

    unity中用到大量重复的物体,例如发射的子弹,可以引入对象池来管理,优化内存. 对象池使用的基本思路是: 将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用.恰当地使用对象池,可以在 ...

  7. 蓝桥杯---波动数列(dp)(背包)(待解决)

    问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减 ...

  8. GL_INVALID_VALUE(0X501)

    当android应该打开GPU的支持后, 有些手机会出现黑屏.闪屏等现象. 跟踪控制台, 会打印日志GL_INVALID_VALUE(0X501). 参考资料:http://mobile.riaos. ...

  9. C# odbc

    一直下一步,注意需要 勾选你要连接的库名 odbc 命名空间 System.Data.Odbc

  10. Appium移动自动化测试(四)--先跑起来再说(第一个测试用例-手机YY)

    说明 本文将详细说明如何使用Appnium完成:打开手机YY欢迎页面->按住屏幕向左滑动4次->按下"立即体验"按钮->按下"直播"按钮,的整 ...