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

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();
     }

    }

   }

  }

 }

}


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值