Как установить тайм-аут при заполнении временной таблицы на основе сложного запроса?

Как установить время ожидания команды в следующей ситуации? Просто чтобы уточнить, я уже установил время ожидания соединения в строке подключения, но мне также нужно установить время ожидания команды, потому что я хочу, чтобы запрос мог выполняться 5 минут, если это необходимо, но время ожидания истекает менее чем через несколько минут.

 String reportQuery = @"  complicated query returning many rows    ";

 SqlConnection ReportConnect = new SqlConnection(ConnectionString);

 ReportConnect.Open();

 DataSet tempDataset = new DataSet();

 SqlDataAdapter da = new SqlDataAdapter(reportQuery, ReportConnect);

 da.Fill(tempDataset);

person JK.    schedule 07.10.2009    source источник


Ответы (1)


Вы можете создать SqlCommand, установить свойство CommandTimeout в команде, а затем передать его конструктору адаптера данных. Что-то вроде этого:

String reportQuery = @"  complicated query returning many rows    ";
SqlConnection ReportConnect = new SqlConnection(ConnectionString);
ReportConnect.Open();
SqlCommand command = new SqlCommand(reportQuery, ReportConnect);
command.CommandTimeout = 300; //5 mins
DataSet tempDataset = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(tempDataset);
person Geoff    schedule 07.10.2009