access
資料庫沒有資料庫連線池,每次開啟和關閉資料庫時都非常耗時,自己編寫了乙個簡易的資料庫連線池,新增資料庫型別還可支援其他沒有資料庫連線池的資料庫型別。
該資料庫連線池要求必須更改
web.config
中的資料庫連線字串,新增
max pool size
及connect timeout
兩個屬性
,如:」
provider=microsoft.ace.oledb.12.0;data source=d:"db.accdb;max pool size=200;connect timeout=300"/>;
,以獲取需要最大的連線數量及連線物件生存期。
該資料庫連線池是在關閉資料庫連線,檢驗其他連線物件的生存期,這樣在沒有發出關閉資料庫連線的請求時,一些已經超過生存期連線物件仍然在記憶體中,還無法做到與其他資料庫連線池同樣的效果。
資料庫連線池**如下:
///
///
連線物件。
///
public class pool
private guid id;
///
///
獲取連線物件的**。
///
public guid id }
private idbconnection connection;
///
///
獲取資料庫連線物件。
///
public idbconnection connection }
///
///
獲取或設定乙個值,該值指示連線物件是否已經使用,
true-
已經使用,否則沒有使用。
///
public bool isuse
///
///
獲取或設定連線物件開啟資料庫的時間。
///
public datetime opentime
}///
///
連線池管理類。
///
public static class connectionpool
///
///
獲取引數。
///
///
配置檔案中的資料庫連線字串。
private static void getparams(string connectionstring)
if (subconnectstring.indexof("max pool size", stringcomparison.invariantcultureignorecase) != -1)
if (subconnectstring.indexof("connect timeout", stringcomparison.invariantcultureignorecase) != -1)
}connectstring = newconnectstring.tostring();
getparam = true;
}///
///
根據資料庫型別建立資料庫。
///
///
資料庫連線型別。
///
指定資料庫連線型別的資料庫連線物件。
private static idbconnection createconnection(connectiontype connecttype)
}///
///
根據資料庫連線字串及資料庫型別建立連線物件。
///
///
資料庫連線字串。
///
資料庫型別。
///
連線物件。
public static pool open(string connectionstring, connectiontype connecttype)
foreach (pool pool in pools)
}if (pools.count >= maxpoolsize)
pool newpool = new pool(guid.newguid(), createconnection(connecttype), true, datetime.now);
pools.add(newpool);
newpool.connection.open();
return newpool;}}
///
///
關閉資料庫連線。
///
///
需要關閉的連線池物件。
public static void close(pool closepool)
else
timespan time = datetime.now - pools[num].opentime;
if (time.totalseconds > pooltimeout)}}
}}呼叫**:
private connectionstring = configurationmanager.connectionstrings[「accessconnectstring」].tostring();
//獲取連線物件
private pool pool=connectionpool.open(connectionstring, connectiontype.oleconnectiontype);
//獲取資料庫連線物件
idbconnection dbconnection= pool.connection;
資料庫操作
//關閉資料庫連線
connectionpool.close(pool);
Access資料庫連線池
access資料庫沒有資料庫連線池,每次開啟和關閉資料庫時都非常耗時,自己編寫了乙個簡易的資料庫連線池,新增資料庫型別還可支援其他沒有資料庫連線池的資料庫型別。該資料庫連線池要求必須更改web.config中的資料庫連線字串,新增max pool size及connect timeout兩個屬性,如...
Access資料庫連線池問題
首先是我所作的b s軟體需要多種資料庫的支援,其中就包括access資料庫。而為了達到快的速度,必須把access的連線放入資料庫連線池,所以我專門給access做了個資料庫連線池。問題出現了 就是用access連線池的時候,有的時候會出現修改過的資料不能及時的反應到介面上來。剛開始我以為是我的ac...
資料庫連線池 Redis連線池
基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...