c#用mysql數據庫連接池的示例:
class DbConn
{
private const int MaxPool=10;//最大連接數
private const int MinPool=5;//最小連接數
private const bool Asyn_Process=true;//設置異步訪問數據庫
private const bool Mars=true;
private const int Conn_Timeout=15;//設置連接等待時間
private const int Conn_Lifetime=15;//設置連接的生命周期
private string ConnString="";//連接字符串
private SqlConnection SqlDrConn=null;//連接對象
public DbConn()//構造函數
{
ConnString=GetConnString();
SqlDrConn=new SqlConnection(ConnString);
}
private string GetConnString()
{
return"server=localhost;"
+"integratedsecurity=sspi;"
+"database=pubs;"
+"MaxPoolSize="+MaxPool+";"
+"MinPoolSize="+MinPool+";"
+"ConnectTimeout="+Conn_Timeout+";"
+"ConnectionLifetime="+Conn_Lifetime+";"
+"AsynchronousProcessing="+Asyn_Process+";";
//+"MultipleActiveResultSets="+Mars+";";
}
public DataTable GetDataReader(string StrSql)//數據查詢
{
//當連接處于打開狀態時關閉,然后再打開,避免有時候數據不能及時更新
if(SqlDrConn.State==ConnectionState.Open)
{
SqlDrConn.Close();
}
try
{
SqlDrConn.Open();
SqlCommandSql Cmd=new SqlCommand(StrSql,SqlDrConn);
SqlDataReader SqlDr=SqlCmd.ExecuteReader();
if(SqlDr.HasRows)
{
DataTable dt=new DataTable();
//讀取SqlDataReader里的內容
dt.Load(SqlDr);
//關閉對象和連接
SqlDr.Close();
SqlDrConn.Close();
returndt;
}
returnnull;
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return null;
}
finally
{
SqlDrConn.Close();
}
}
}