当前位置:首页 > 网络编程 > WEB编程 > ASP.net > 一个有KeepConnection开关的C#的Database类

一个有KeepConnection开关的C#的Database类

点击次数:19 次 发布日期:2008-11-26 23:38:15 作者:源代码网
源代码网推荐 using System;
源代码网推荐using System.Data;
源代码网推荐using System.Data.SqlClient;

namespace cnkk.Data
源代码网推荐{
源代码网推荐 /// <summary>
源代码网推荐 /// SQL Database.
源代码网推荐 /// </summary>
源代码网推荐 public class Database : DisposableBase
源代码网推荐 {
源代码网推荐  private string connectionString;
源代码网推荐  private SqlConnection connection;

  protected Database(string connectionString)
源代码网推荐  {
源代码网推荐   this.connectionString = connectionString;
源代码网推荐  }

  protected Database(SqlConnection connection)
源代码网推荐  {
源代码网推荐   this.connection = connection;
源代码网推荐  }

  protected override void DisposeManaged()
源代码网推荐  {
源代码网推荐   base.DisposeManaged ();

   this.connection.Dispose();
源代码网推荐  }

  private SqlConnection GetConnection()
源代码网推荐  {
源代码网推荐   if ( KeepConnection )
源代码网推荐   {
源代码网推荐    return this.connection;
源代码网推荐   }
源代码网推荐   else
源代码网推荐   {
源代码网推荐    return new SqlConnection(ConnectionString);
源代码网推荐   }
源代码网推荐  }

  protected SqlConnection Connection
源代码网推荐  {
源代码网推荐   get { return this.connection; }
源代码网推荐  }

  private int commandTimeout = 30;

  /// <summary>
源代码网推荐  /// 设置等待命令执行的时间(以秒为单位)。
源代码网推荐  /// </summary>
源代码网推荐  public static int CommandTimeout
源代码网推荐  {
源代码网推荐   set
源代码网推荐   {
源代码网推荐    this.commandTimeout = value;
源代码网推荐   }
源代码网推荐  }

  /// <summary>
源代码网推荐  /// Database connection string.
源代码网推荐  /// </summary>
源代码网推荐  public string ConnectionString
源代码网推荐  {
源代码网推荐   get { return connection.ConnectionString; }
源代码网推荐  }


源代码网推荐  private bool keepConnection = false;

  /// <summary>
源代码网推荐  /// 保持数据库连接,设置为 true 可以提供更高数据库访问性能,但不保证是线程安全的。
源代码网推荐  /// </summary>
源代码网推荐  public virtual bool KeepConnection
源代码网推荐  {
源代码网推荐   get
源代码网推荐   {
源代码网推荐    return keepConnection;
源代码网推荐   }

   set
源代码网推荐   {
源代码网推荐    if ( keepConnection != value )
源代码网推荐    {
源代码网推荐     keepConnection = value;

     if ( keepConnection == true )
源代码网推荐     {
源代码网推荐      if ( connection.State == ConnectionState.Closed )
源代码网推荐       connection.Open();
源代码网推荐     }
源代码网推荐     else
源代码网推荐     {
源代码网推荐      connection.Close();
源代码网推荐     }
源代码网推荐    }
源代码网推荐   }
源代码网推荐  }
源代码网推荐 }
源代码网推荐}
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华