超时已过期。操作完成之前经过的超时时间或服务器没有响应

时间:2015-11-03 12:25:57

标签: c# sql asp.net

我的程序是这样的,

sqlCmd = New SqlCommand("sp_JBM_ProductionReprt", myConnection)
                sqlCmd.CommandType = CommandType.StoredProcedure
                sqlCmd.Parameters.Add(New SqlParameter("@Type", Data.SqlDbType.VarChar)).Value = SessionHandler.sCustAcc
                sqlCmd.Parameters.Add(New SqlParameter("@FromDate", Data.SqlDbType.DateTime)).Value = strFromDate
                sqlCmd.Parameters.Add(New SqlParameter("@ToDate", Data.SqlDbType.DateTime)).Value = strToDate
                sqlCmd.Parameters.Add(New SqlParameter("@TblChapterInfo", Data.SqlDbType.VarChar)).Value = Init_Tables.gTblChapterInfo
                sqlCmd.Parameters.Add(New SqlParameter("@TblProdStatus", Data.SqlDbType.VarChar)).Value = Init_Tables.gTblProdStatus
                sqlCmd.Parameters.Add(New SqlParameter("@Condition", Data.SqlDbType.VarChar)).Value = strCondition
                sqlCmd.Parameters.Add(New SqlParameter("@EmpSelection", Data.SqlDbType.VarChar)).Value = strEmpSel
                sqlCmd.Parameters.Add(New SqlParameter("@SubTeamID", Data.SqlDbType.VarChar)).Value = " "

            myConnection.Open()
            sqlCmd.Connection = myConnection
            'sqlCmd.CommandTimeout = 10
            myReader = New SqlDataAdapter(sqlCmd)

            myReader.Fill(ds)

我等了不到一分钟就收到了这个错误

the timeout period elapsed prior to completion of the operation or the server is not responding.

我在网络配置中添加了

<httpRuntime maxRequestLength="2097151" executionTimeout="10800" />

但我得到同样的错误。

我也试过这个

sqlCmd.CommandTimeout = 10

请建议我找到解决方案。

3 个答案:

答案 0 :(得分:0)

检查您的连接是否保持打开状态并且未处理,因为这会导致连接池耗尽。如果您正确处理连接,您的问题将得到解决。

同时检查您的数据库统计/查询计划是否正确。如果没有,请使用

清除它
exec sp_updatestats

另外,设置commandTimeOut会有所帮助。

答案 1 :(得分:0)

web.config中的ExecutionTimeout :指定允许执行HTTP请求的的最大数量

CommandTimeout :指定允许执行SQL命令的 seconds 的最大数量

尝试将 CommandTimeout 设置为更高的值。默认值为 30

答案 2 :(得分:0)

增加您的CommandTimeout

        DataSet ds = new DataSet();
        SqlConnection myConnection= new SqlConnection(connectionString);
        myConnection.Open();
        SqlCommand sqlCmd= new SqlCommand("sql statement");
        sqlCmd.Connection = myConnection;
        sqlCmd.CommandTimeout = 90;
        myReader = New SqlDataAdapter(sqlCmd);
        myReader.Fill(ds)
        myConnection.Close();