2012-03-22 55 views
0

我正在使用Visual Studio 2010,TableAdapters,並在C#中編寫我的代碼。我寫了一些數據填充代碼後,正在冒險調試我的代碼,並且正在查看我遇到的SQL問題。在這一點上,我想實現一些SQL重試代碼來處理重試任何查詢,如果他們由於各種原因超時。我可以在業務邏輯層實現它們,但是我會在所有調用TableAdapter的BLL方法中複製該代碼。我相信我需要在TableAdapter級別甚至更高的地方執行此操作,因爲我需要在大約30個左右不同的TableAdapter對應於不同數據的順序。有沒有人有任何代碼實現將由所有TableAdapter運行的代碼?我已經看到了擴展TableAdapter的示例代碼,但我正在尋找更加集中的重試邏輯。使用ASP.Net TableAdapter時,哪裏可以實現SQL重試邏輯?

回答

0

可以通過設置命令超時屬性避免此問題= 0

SqlCommand.CommandTimeout 

或者,也可以把重試邏輯在2-3企圖DAL層。

+0

我該如何將DAL層中的邏輯放在中心位置。當你說DAL層時,我正在考慮我有的TableAdapter集以及與它創建並添加到其中的sprocs相對應的一組方法。我將如何在一個地方重試邏輯,所有這些都會使用? – BuffDev1 2012-03-22 20:04:42

+0

首先,如果這只是Timeout Issue,那麼設置Timeout = 0.否則,第二,在dal層函數中,把你的請求放在try catch中,try catch在while循環中。同時發送請求到數據庫,在dal層,如果你得到錯誤,捕獲它的sql錯誤號。現在基於這個錯誤號重複三次,直到你成功... – Pankaj 2012-03-22 20:10:16

+0

任何更新? – Pankaj 2012-03-23 10:11:55