ADO.NET中的DataSet和DataAdapter

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

DataSet和DataTable

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

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

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

DataSet ds =newDataSet("school");

DataTable dt=newDataTable("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返回值的适配。

stringconn ="";//连接字符串stringsql ="";//sql语句/*DataAdapter是对 Connection、Command、以及DataReader的封装*/DataAdapter da=newDataAdapter(sql,conn);

DataTable dt=newDataTable();/******说明******

1. 先构造好列,再填充的话,会提高效率。

2. Fill(0,10,dt);是一种分页方式,适用于小项目。

去一页,读全部!*/da.Fill(0,10,dt);

推荐使用DataReader

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

//简写哈,简写DataSet ds =newDataSet();

DataAdapter da=newDataAdapter(SQL语句,连接字符串)

da.Fill(ds);//其实,真的做项目,这种方式获取表并不推荐。DataTable dt =ds.Tables[0];

2.推荐做法

//还是简写哈,简写using(Connection conn =newConnection("连接字符串"))

{using(Command cmd =conn.CreateCommand())

{using(DataReader reader =cmd.ExecuteReader())

{

DataTable dt=newDataTable();

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航