ADO.NET2.0的特性想必大家也都体验到它的好处了,它的新特性让你爱不释手,所谓一分耕耘,一分收获,付出了就一定会有回报的,说了这么多还是希望大家多了解了解ADO.NET原理机制,我们这里就先不和大家说关于原理的分析了,我们就ADO.NET SqlConnection的一些新特性来分析一下吧。
#T#ADO.NET框架支持两种模式的数据访问:连接模式(Connected)和非连接模式(disconnected)。这一节介绍如何使用连接模式访问数据库中的数据,利用ADO.NET中的 Connection,Command,DataReader来获取和修改数据库中的数据 。使用RetrieveStatistics()方法获得数据命令执行时的统计信息,例如,可以获取总命令执行时间的统计信息。
ADO.NET SqlConnection统计信息有以下常用属性可以获得:
◆BytesReceived : 查询中接收到的字节数
◆BytesSend : 发送出数据的字节数
◆ConnectionTime : 当前连接被开启的总时间
◆ExecutionTime : 返回以毫秒为单位的连接执行时间
◆IduCount: 用于返回被执行Insert、Update、Delete命令的次数
◆IduRows : 用于返回被执行Insert、Update、Delete命令的行数
◆SelectCount: 用于返回Select命令执行的次数
◆SelectRows : 用于返回Select命令执行的行数
ADO.NET SqlConnection案例分析:取得数据库查询的执行时间
- // Movies类中的GetAll方法返回一个List对象,该对象可以被GridView等控件做为数据源绑定
- namespace DawnDataObject
- {
- public class Movies
- {
- public static readonly string _connectionString;
- // 连接数据库字符串为静态成员,每个实例共享。
- static Movies(){
- _connectionString = WebConfigurationManager.ConnectionStrings["DawnEnterpriseDBConnectionString"].
- ConnectionString;
- }
- private string _title;
- private string _director;
- // Movies类中包括的属性有Title、Director
- public string Title{
- get { return _title; }
- set { _title = value; }
- }
- public string Director {
- get { return _director; }
- set { _director = value; }
- }
- // Movies类中的GetAll方法返回一个List对象,该对象可以被GridView等控件做为数据源绑定
- public List<Movies> GetAll(out long executeTime)
- // executeTime作为out参数
- {
- List<Movies> result = new List<Movies>();
- SqlConnection conn = new SqlConnection(_connectionString);
- SqlCommand comm = new SqlCommand("WAITFOR DELAY '0:0:03';select Title,Director from Movies", conn);
- conn.StatisticsEnabled = true; // 开启获取统计信息的功能
- using(conn){ // using关键字指定了conn一旦离开这个代码段,自动调用其Dispose函数
- conn.Open();
- SqlDataReader reader = comm.ExecuteReader();
- while(reader.Read()){
- Movies newnewmovie = new Movies();
- newmovie._title = (string)reader["Title"];
- newmovie._director = (string)reader["Director"];
- result.Add(newmovie);
- }
- IDictionary stats = conn.RetrieveStatistics();
- executeTime = (long)stats["ExecutionTime"];
- return result;
- }
- }
- }
- }