2011-02-11 154 views
1

我正在使用數據庫來運行一些查詢,並正在考慮優化一些東西。是Microsoft.Practices.EnterpriseLibrary.Data.Database.SetParameterValue線程安全嗎?

我基本上是做兩個靜態對象

private static Database db = ... ; 
private static DbCommand cmd = db.GetSqlStringCommand("... where col = @colParam"); 
.... 
cmd.Prepare(); //one call 

然後想只是做:

db.AddInParameter(cmd, "colParam", DbType.String, "some value on each call") 

調用它時。

它只能工作一次。第一個電話後,我收到

變量名必須是批查詢或存儲過程

關於@colParam參數的錯誤消息中是唯一的。

所以我當時在每次調用一組替換加思考:

db.SetParameterValue(cmd, "colParam", "some value on each call") 

但是,這是安全的?我有這種感覺......?!?!?!?

線程安全嗎只有一個命令對象可以在每個調用上設置值?如果兩個用戶同時設置價值會怎樣?然後會發生什麼?

回答