|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
В приложении WindowsForm формирую отчет. Один из запросов в зависимости от заданного периода, иногда выполняется около минуты (проверял в Mamagement Studio) соответственно формирование отчета прекращается по исключению исключение"Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает" По умолчанию свойство Connection.ConnectionTimeout стояло 15 сек. И таймаут срабатывал правильно. Я указал в строке подключения "Connect Timeout = 600" и Connect Timeout = 0, в обоих случаях в отладчике свойство Connection.ConnectionTimeout равно 600 и 0 соответственно, но отчет после 30 секунд вылетает по тому же самому исключению. Где копать, кроме оптимизации запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:22 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
connect timeout это на соединение , а не выполнение. нужно искать command timeout ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:24 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
SqlCommand.CommandTimeout Property (System.Data.SqlClient) | Microsoft Docs Gets or sets the wait time before terminating the attempt to execute a command and generating an error. Property Value Int32 The time in seconds to wait for the command to execute. The default is 30 seconds. Remarks A value of 0 indicates no limit (an attempt to execute a command will wait indefinitely). Ну, и для сравнения: SqlConnection.ConnectionTimeout Property (System.Data.SqlClient) | Microsoft Docs Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:28 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
Konst_One, искал. У sp_моя_процедураTableAdapter есть только Connection и Connection.ConnectionTimeout, а CommandTimeout нет свойства. Тем более не понятно где его поменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:30 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
О нашел свойство моя_Процедура.Adapter.SelectCommand.CommandTimeout = 30, осталось только поменять его. Потому как перед методом Fill оно еще не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:38 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
alex_llО нашел свойство моя_Процедура.Adapter.SelectCommand.CommandTimeout = 30, осталось только поменять его. Потому как перед методом Fill оно еще не существует. оно существует со значением по умолчанию ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 10:24 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
В общем, можно сделать как советуют умные люди новый класс на основе существующего и прописать метод меняющий параметр .Adapter.SelectCommand.CommandTimeout. Но если кому надо срочно, что бы заработало, а потом не спеша сделать правильно, то переписать Код: c# 1.
на Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Тут фишка в том, что до вызова метода Fill этот параметр null, а после вызова определен по умолчанию (у меня был 30) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 15:00 |
|
не меняется TimeOut при формировании отчета
|
|||
---|---|---|---|
#18+
alex_llТут фишка в том, что до вызова метода Fill этот параметр null, а после вызова определен по умолчанию (у меня был 30) 30 он у всех, см. документацию. А то, что null до вызова Fill - это потому, что до первого вызова Fill у адаптера собственно команды (SqlCommand) нет, она сама равна null. alex_llВ общем, можно сделать как советуют умные люди новый класс на основе существующего и прописать метод меняющий параметр .Adapter.SelectCommand.CommandTimeout. Можно заполнять данные как угодно, хоть через даппер в виде коллекций, потом и программно собирать эти данные вместе для привязки к источникам данных отчёта. Кода, в общем-то, совсем немного. Это позволяет вообще отказаться от сгенеренных адаптеров, и полностью управлять процессом загрузки данных - например, сделать её асинхронной. Я сам лично дизайнером датасета, если возникает нужда иметь дело с rdl, пользуюсь только для привязки полей отчета к данным, и всё - адаптеров нет, сами DataTable's некогда не заполняются, потому что отчет получает данные другим способом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 17:10 |
|
|
start [/forum/topic.php?fid=20&tid=1398823]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 574ms |
0 / 0 |