при попытке вызова Close или Dispose на SqlDataReader я получить таймаут исключение. Если у вас есть DBConnection к SQL Server, вы можете воспроизвести его самостоятельно с:.NET: SqlDataReader.Close или .Dispose приводит таймаут исключения
String CRLF = "\r\n";
String sql =
"SELECT * " + CRLF +
"FROM (" + CRLF +
" SELECT (a.Number * 256) + b.Number AS Number" + CRLF +
" FROM master..spt_values a," + CRLF +
" master..spt_values b" + CRLF +
" WHERE a.Type = 'p'" + CRLF +
" AND b.Type = 'p') Numbers1" + CRLF +
" FULL OUTER JOIN (" + CRLF +
" SELECT (print("code sample");a.Number * 256) + b.Number AS Number" + CRLF +
" FROM master..spt_values a," + CRLF +
" master..spt_values b" + CRLF +
" WHERE a.Type = 'p'" + CRLF +
" AND b.Type = 'p') Numbers2" + CRLF +
" ON 1=1";
DbCommand cmd = connection.CreateCommand();
cmd.CommandText = sql;
DbDataReader rdr = cmd.ExecuteReader();
rdr.Close();
Если вы звоните reader.Close() или reader.Dispose() он будет бросать System.Data.SqlClient.SqlException:
- ErrorCode: -2146232060 (0x80131904)
- сообщение: «время ожидания истекло время ожидания истекло до завершения операции или сервер не отвечает.».
Проблема происходит, если вы читаете ноль строк, строк или нескольких строк. – 2008-09-25 13:47:24