我在处理长sql查询时遇到超时问题,对于长查询超时的数据集是:
static public DataSet Getxxxx(Guid xxxx)
{
DataSet ds = SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "GetAllxx", new SqlParameter("@productxx", productxx));
return ds;
}
我在哪里设置超时,我使用的是Microsoft应用程序块版本2.0。
答案 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);
}