2013-12-18 65 views
0
{ 
DataSet obj= new DataSet(); 
       SqlParameter[] sqlParams = new SqlParameter[2]; 
       sqlParams[0] = new SqlParameter("@val", SqlDbType.Int); 
       sqlParams[0].Value = val; 
       sqlParams[1] = new SqlParameter("@val1", SqlDbType.Int); 
       sqlParams[1].Value = val1; 


       return DataAccessHelper.DataAccessHelper.SqlHelper.ExecuteDataset(connection, CommandType.StoredProcedure, "sp", sqlParams); 

} 

我已經在web配置中設置連接超時,我不能在c#中使用命令超時,我沒有使用sqlcommand .my代碼存儲程序需要約2分鐘,所以我得到這個錯誤。請建議我解決這個問題「超時過期。 「

+0

這是否也發生在其他存儲過程的情況下呢?如果您直接從Management Studio執行存儲過程,需要多長時間? –

+0

不,只需要這個sp.it的調用需要將近2分鐘 – ascii

+0

@ user3051282在ExecuteDataset方法中,「連接」是連接對象或連接字符串,在這兩種情況下都可以設置連接超時並對其進行設置。 –

回答

0

這是一個嘗試的幫助,我不是絕對相信如果這是真正的問題,或者一個非常糟糕的數據庫設計和或錯誤的查詢請求。

如果您的查詢需要2分鐘,你可能覺得在會話鎖定和其他的頁面請求簡單獲取時間了...

我的意思。會話(當您使用它時)會鎖定每個用戶的每個頁面操作。現在,如果用戶阻止該頁面2分鐘,則每隔另一個請求需要2 + 2分鐘才能完成,等等......並最終導致超時。

禁用會話進行計算的這一部分,或將其發送到後臺線程,只是顯示結果,或做出更好的SQL查詢...

一些更多閱讀:
ASP.NET Server does not process pages asynchronously
Web app blocked while processing another web app on sharing same session

+0

會議部分是在C#code.i剛剛宣佈它獲取登錄ID – ascii