Я хочу установить время выполнения запроса из строки подключения. а не таймаут соединения, возможно ли это?
Как установить тайм-аут запроса из строки подключения SQL
Ответ 1
Нет. Это за команду, а не за соединение.
Изменить, май 2013 г.
Как указано в комментарии:
- SQLCommand.CommandTimeout для выполнения команды
- Не существует соответствующего свойства SQLConnection (в нем говорится, что Свойство SqlConnection.ConnectionTimeout
Еще несколько заметок о командах и тайм-аутах выполнения в SQL Server (DBA.SE). И еще более SO stuff: Что происходит с незафиксированной транзакцией при закрытии соединения?
Ответ 2
Смотрите: - ConnectionStrings контент по этому вопросу. Не существует свойства тайм-аута команды по умолчанию.
Ответ 3
Вы можете установить только время ожидания соединения в строке подключения, тайм-аут для вашего запроса, как правило, находится в тайм-ауте команды. (Предполагая, что мы говорим .net здесь, я не могу сказать из вашего вопроса).
Однако тайм-аут команды не действует, когда команда выполняется против контекстного соединения (SqlConnection открывается с "context connection = true" в строке соединения).
Ответ 4
Только из кода:
namespace xxx.DsXxxTableAdapters {
partial class ZzzTableAdapter
{
public void SetTimeout(int timeout)
{
if (this.Adapter.DeleteCommand != null) { this.Adapter.DeleteCommand.CommandTimeout = timeout; }
if (this.Adapter.InsertCommand != null) { this.Adapter.InsertCommand.CommandTimeout = timeout; }
if (this.Adapter.UpdateCommand != null) { this.Adapter.UpdateCommand.CommandTimeout = timeout; }
if (this._commandCollection == null) { this.InitCommandCollection(); }
if (this._commandCollection != null)
{
foreach (System.Data.SqlClient.SqlCommand item in this._commandCollection)
{
if (item != null)
{ item.CommandTimeout = timeout; }
}
}
}
}
//....
}