超时在C#方法上过期

时间:2016-11-21 08:01:06

标签: c# asp.net sql-server-2008

我已经在运行正常的mssql上运行了一个存储过程。 3天前,在代码中运行相同的过程开始给我Timeout过期。尝试检查基础表上是否有任何正在运行的进程,但似乎没有。检查了死锁情况,也没有。任何人都可以建议下一步做什么来解决这个问题?

这是代码

public DataSet rptPaymentsByDateOptions(DateTime dateFrom, DateTime dateTo, string level, string sessionID, string degreeID, string programID, string jrnalSrce)
    {
        DataSet ds = new DataSet();
        Database db = DatabaseFactory.CreateDatabase();
        DbCommand cmdSem = db.GetStoredProcCommand("[iSchool].[rptCurrentSem]");
        DbCommand cmd = db.GetStoredProcCommand("[iFinance].[rptPaymentsByDateOptions]");
        db.AddInParameter(cmd, "DateFrom", DbType.Date, dateFrom);
        db.AddInParameter(cmd, "DateTo", DbType.Date, dateTo);
        db.AddInParameter(cmd, "Level", DbType.String, level);
        db.AddInParameter(cmd, "SessionID", DbType.String, sessionID);
        db.AddInParameter(cmd, "DegreeID", DbType.String, degreeID);
        db.AddInParameter(cmd, "ProgramID", DbType.String, programID);
        db.AddInParameter(cmd, "JrnalSrce", DbType.String, jrnalSrce);
        db.LoadDataSet(cmdSem, ds, "rptCurrentSem");
        db.LoadDataSet(cmd, ds, "rptPaymentsByDateOptions"); //Timeout error here
        return ds;
    }

如果我在management studio中执行rptPaymentsDateOptions存储过程,它将成功运行。

1 个答案:

答案 0 :(得分:1)

您可以增加超时

DbCommand.CommandTimeout Property

您还可以查看表和数据,以查看是否有任何其他索引可能会加快查询速度。