4

我收到此錯誤之前連接可用於執行SQL語句

本次交易前,連接可用於執行SQL語句必須位於事務必須配置。**。

我有一個包含約6000行的Excel文件,我上傳這些文件分成多個數據表類型化的DataSet,然後我試圖申請在DT這些行我的業務邏輯,這裏是我的代碼 異常從第二個循環拋出,我必須做2個循環,我需要幫助來知道爲什麼會發生這種異常,我該如何解決它。

try 
{ 
    using (TransactionScope scope = SysInfo.BeginTransaction(IsolationLevel.Serializable)) 
    { 

     //Here is my Typed dataset 

     //Method Looping through row in Datatable & Calling DB 

     //another Method Looping through row in Datatable & Calling DB 

     scope.Complete(); 
    } 
} 
catch (Exception ex) { throw ex; } 
+3

沒有內部循環的一些代碼很難說這裏有什麼問題。請不要發現異常並重新拋出同樣的情況。它破壞了寶貴的信息。 – Steve

回答

7

我解決它通過添加下面行的App.config:

<configuration> 
    <system.transactions> 
     <defaultSettings timeout="00:01:30" /> 
    </system.transactions> 
</configuration> 

這Machine.config中:

<configuration> 
    <system.transactions> 
     <machineSettings maxTimeout="00:01:30" /> 
    </system.transactions> 
</configuration> 

作爲這個過程需要很長的時間大超過10分鐘,所以我發現我需要用更高的值覆蓋這個值。

但我有一個問題,請用例子增加超時值的效果是什麼。

+1

機器配置路徑%windir%\ Microsoft.NET \ Framework64 \ [版本] \ config \ machine.config –