2013-12-18 43 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