我的存储过程看起来像这样:
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