使用sql helper时出现超时问题(Microsoft.ApplicationBlocks.Data)

时间:2012-01-16 15:42:35

标签: asp.net sql-server database timeout sqlhelper

我在处理长sql查询时遇到超时问题,对于长查询超时的数据集是:

static public DataSet Getxxxx(Guid xxxx)
{
    DataSet ds = SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "GetAllxx", new SqlParameter("@productxx", productxx));

    return ds;
}

我在哪里设置超时,我使用的是Microsoft应用程序块版本2.0。

1 个答案:

答案 0 :(得分:3)

数据访问应用程序阻止SqlHelper已为phased out in favour of 'Database',因此您需要明确创建DbCommand并将其传递给Database.ExecuteDataSet。然后,您可以设置CommandTimeout property,以覆盖默认值30秒。例如这会将超时设置为200秒:

using (DbCommand command = this.Database.GetStoredProcCommand("GetAllxx"))
{
    Database.AddInParameter(command, "@productxx", DbType.Int32, productxx);
    command.CommandTimeout = 200;
    return Database.ExecuteDataSet(command);
}