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

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

}

}

}

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航