码迷,mamicode.com
首页 > Web开发 > 详细

.net 面试题总结

时间:2015-05-07 16:33:27      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

1. DataSet和DataReader的区别?

DataReader:和数据库处于一直连接状态。只读只能向前读取,一次只能读取一行信息。DataReader每次只在内存中加载一条数据,内存占用少,高效率! 

Dateset:和数据库是断开的离线状态。返回都是数据集,可以对其中的数据做任意操作,DataSet将数据全部加载在内存中,内存占用多,效率稍低。

- DataReader是数据管理提供者类,而DataSet是一般性数据类。

DataSet获取数据需要通过桥梁DataAdapter的填充,由于DataReader本身就是管理提供者,它可以通过Command的ExecuteReader()方法就可以获取数据。

- DataReader是在线处理,当连接关闭后就不能读取数据;DataSet可以离线处理数据,它是把数据从数据库拷贝到本地存储,在关闭连接的情况下仍然可以在DataSet中处理数据,甚至可以在本地存储的表格中增加限制。

- DataReader只能正向读取数据,但不能修改数据;DataSet可以按任何顺序读行,可以按灵活的方式搜索、排序和过滤这些行,甚至可以改变这些行,然后将这些改变同步到数据库中。

- 从DataReader读取数据的速度快于DataSet。

- 由于DataSet是离线处理,所以当在事务处理中要锁定数据库是,不可以使用DataSet。因为当DataSet被填充以后,会自动断开与数据库的连接,此时不可能再对数据库进行锁定。

选择使用DataReader的情形: 

1)不需要缓存数据。 

2)要处理的结果集太大,内存中放不下。 

3)一旦需要以仅向前、只读方式快速访问数据。

 

2. 委托和事件的区别?

                                                                               表1 委托和事件的区别

序号 区别 委托 事件
1 是否可以使用=来赋值
2 是否可以在类外部进行调用
3 是否是一个类型 否,事件修饰的是一个对象

 

在.net中,事件是一种特殊的委托。

- 事件只能在本类型内部“触发”,委托不管在本类型内部还是外部都可以“调用”。

- 在类的外部,事件只能用“+=”和“-=”去订阅/取消订阅,如果是委托的话还可以使用“=”。

 

.net 面试题总结

标签:

原文地址:http://www.cnblogs.com/anny-1980/p/4485048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!