我在处理长SQL查询时遇到超时问题,对于长查询超时的数据集是:
static public DataSet Getxxxx(Guid xxxx) { DataSet ds = sqlHelper.ExecuteDataset(ConnectionString,CommandType.StoredProcedure,"GetAllxx",new sqlParameter("@productxx",productxx)); return ds; }
我在哪里可以设置超时,我使用的是Microsoft应用程序块2.0版.
解决方法
数据访问应用程序块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); }