Проблема тайм-аута при использовании sql helper (Microsoft.ApplicationBlocks.Data) - PullRequest
4 голосов
/ 16 января 2012

У меня возникают проблемы с тайм-аутом при работе с длинными 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 Ответ

3 голосов
/ 16 января 2012

Блок приложения доступа к данным SqlHelper был снят с производства в пользу 'Database' , поэтому вам нужно явно создать DbCommand и передать его в Database.ExecuteDataSet.Затем вы можете установить свойство CommandTimeout , чтобы переопределить значение по умолчанию 30 секунд.например, это устанавливает время ожидания на 200 секунд:

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