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(0,10,dt);

推荐使用DataReader

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

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

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。是不是要用,还是自己取舍。

时间: 2024-11-07 08:32:48

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

ADO.NET 中的数据并发

当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方法: ?保守式并发控制 - 在从获取记录直到记录在数据库中更新的这段时间内,该行对用户不可用. ?开放式并发控制 - 只有当实际更新数据时,该行才对其他用户不可用.更新将在数据库中检查该行并确定是否进行了任何更改.如果试图更新已更改的记录,则将导致并发冲突. ?最后的更新生效 - 只有当实际更新数据

浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

可能是当初没有好好总结的缘故,学习.NET以来,对ADO.NET中的对象一直有些模糊,今天重新回顾了一下,通过查资料,总结,结合自己的观点整理一下ADO.NET中Connection.Command.DataReader.DataAdapter. DataSet.DataTable这几个对象的相关知识,希望对初学者能起到一个全局把控的作用,希望大牛能留下宝贵的指导意见. 以下的例子仅以连接 SQL Server数据库为例,所以分别以SqlConnection.SqlCommand.SqlData

ADO.Net中DataSet的应用

一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的. 2.创建和刷新 DataSet 并依次更新原始数据的步骤: 通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable. 通过添加.更新或删除 DataRow 对象更改单个 DataTable 对象中的数据. 调用 DataAdap

Ado.net中DataSet和SqlDataReader的区别

概述: 一,SqlDataReader //基于连接,只读访问 适合数据量较小. SqlDataAdapter //基于非连接,适于数据量较大时,可以另行修改,最后再把修改结果返回给数据库.要求资源也大一点 二,SqlDataAdapter 读取数据后将数据集放入DataSet ,DataSet 的数据存在本地客服机内存. 三,SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活,一般在只读的时候才用到. SqlDataAdapter返回的是数据集或者表,可以对其中的

C# ADO.NET中的五个主要对象&lt;转&gt;

Connection 物件   Connection 对象主要是开启程序和数据库之间的连结.没有利用连结对象将数据库打开,是无法从数据库中取得数据的.这个物件在ADO.NET 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生. Command 物件   Command 对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询.新增.修改.删除数据等指令,以及呼叫存在数据库中的预存程序等.这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源

ADO.NET中的五个主要对象

Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用. Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询.新增.修改.删除数据等指令,以及调用存在数据库中的存储过程等.这个对象是架构在Connection 对象上,也就是Command 对象是透过连接到数据源. DataAdapter:主要是在数据源以及DataSet 

ADO.NET中5大对象简介

ADO.NET在以前的学习中接触过,并以应用过,但并没有好好的总结过.最近这段时间的学习又复习了这块的知识,下面就我现在所知道的总结归纳一下. ADO.NET是基于XML的全新的数据库访问技术,与传统的ADO相比,它主要核心z是XML, 它是一个断开式连接,它主要依靠的是DataSet数据集. 一.ADO.NET对象模型,如下图. .NET数据提供程序和DataSet是ADO.NET中的两个重要组件. .NET数据提供程序:保证了客户端和服务器的连接(即,应用程序和数据库之间的连接). .NET

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

Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 原文链接:https://msdn.microsoft.com/en-us/library/ms978388.aspx 概要:在典型的应用环境中,比较不同数据访问技术的表现性能.适用于Microsoft .NET Framework Beta2 和 Microsoft SQL Server 2000

Ado.Net,关于DataSet和DataTable

DataSet和DataTable的 区别与联系 1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中. ●注意如下 Ado.Net 关系: Connection_____Command____DataAdapter____Dataset  _____Datareader ● DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新