设置大查询的超时

时间:2015-10-05 13:36:40

标签: c# timeout sqlconnection

我的存储过程看起来像这样:

SELECT * FROM dbo.BigTable 
FOR XML PATH, ELEMENTS XSINIL, ROOT('data')

存储过程需要花费更多时间,然后是3秒,但是它仍在处理所有内容并且没有超时。如果我把WAITFOR DELAY '00:00:04',那么超时工作正常。

如何设置正确的超时,以便读取结果永远不会超过超时限制?为什么我不在这里暂停?

using (var con = new SqlConnection(tycheCon))
{
     con.Open();
     using (var sqlCmd = con.CreateCommand())
     {
          sqlCmd.CommandType = CommandType.StoredProcedure;
          sqlCmd.CommandText = dbo.spGetData;
          sqlCmd.CommandTimeout = 3;

          using (var reader = sqlCmd.ExecuteReader())
          {
               while (reader.Read())
               {
                   //Do stuff with result
               }
               reader.Close();
          }
     }
     con.Close();
}

编辑:

Connectionstring看起来像:

  

Data Source = Server; Initial Catalog = DataBase; Integrated Security = True; Application Name = CoolName

0 个答案:

没有答案