我有一個C#數據庫層,使用每秒鐘在後臺計時器中調用的靜態讀取方法。使用數據庫最佳實踐?
目前我創建SqlCommand,SqlConnection一次作爲類的成員。
在每一個方法調用中,我都執行命令來獲得結果,我這樣做是爲了避免每秒創建一次連接和命令,但是恐怕在這種方法中會發生異常,從而破壞連接或將對象處於無效狀態。
這是我目前的執行(定時器處理)
static void GetBarTime(object state)
{
lock (_staticConnection)
{
SqlDataReader dataReader = null;
try
{
dataReader = _getMaxTimeCommand.ExecuteReader();
dataReader.Read();
_currentTick = dataReader.GetInt32(0);
}
catch (Exception ex)
{
//Log the error
}
finally
{
dataReader.Dispose();
}
}
}
什麼是最好的做法是什麼?
更多細節:
我在一個計時器這樣做的還有另外一個prorcess更新我的表中的每一秒,有一個由一組客戶端使用,並呼籲每一秒,以獲得最新值的另一暴露方法。
因此,不是每秒鐘爲每個客戶端執行select語句,而是在一個定時器中執行並更新客戶端使用的全局變量。
你能解釋的情況下,至於爲什麼你需要在定時器中編寫代碼以從DB讀取事物? DB值變化的頻率如何? – shahkalpesh 2009-06-29 06:47:28
我添加了詳細信息 – 2009-06-29 07:05:23
(回覆評論) – 2009-06-29 08:48:51