2009-10-07 52 views
1

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

回答

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); 
+0

这工作得很好!谢谢你,谢谢你,谢谢你! – 2009-10-07 05:42:53