如何根据复杂查询填充临时表时设置超时?

时间:2009-10-07 05:07:02

标签: c# .net ado.net sqldataadapter

如何在以下情况下设置命令超时?只是为了澄清,我已经在连接字符串中设置了连接超时,但我还需要设置命令超时,因为我希望查询能够在需要时运行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);

1 个答案:

答案 0 :(得分:8)

您可以在命令上创建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);