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();
源代码网推荐 }
源代码网推荐 }
源代码网推荐 }
源代码网推荐 }
源代码网推荐 }
源代码网推荐}
源代码网推荐