sqlCom.CommandTimeout = 60;
O que significa
CommandTimeout: tempo limite de execução do comando, unidade: segundos
- Valor padrão: 30 segundos
- No exemplo definido como 60 → se a instrução SQL não terminar em até 60 segundos, uma exceção de timeout é lançada.
Saiba diferenciar esses dois tipos de timeout
ConnectionTimeout: configurado na string de conexão, tempo limite para estabelecer conexão com o banco de dadosCommandTimeout: passa a valer após conexão bem‑sucedida, tempo de espera para execução de instruções SQL
Exemplo completo
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=xxx";
// using libera automaticamente o recurso SqlConnection
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand sqlCom = new SqlCommand();
// Associar conexão (escolha uma das duas formas)
sqlCom.Connection = conn;
sqlCom.CommandText = "select 1";
// Define timeout de execução SQL para 60 segundos
sqlCom.CommandTimeout = 60;
object obj = sqlCom.ExecuteScalar();
MessageBox.Show(obj.ToString());
}
// Ao sair do bloco using, conn é fechado e liberado automaticamente, não precisa chamar conn.Close() manualmente
}Code language: JavaScript (javascript)
Observações importantes
- Não aceita valores negativos. 0 significa espera indefinida (não recomendado, pode travar a aplicação)
- Vale apenas para essa instância de
SqlCommand, não é uma configuração global - Aumente esse valor quando stored procedures demorarem muito para rodar.
Na prática, priorize otimizar o SQL, não apenas aumentar o tempo‑limite sem parar.
Forma curta de inicialização (inicializador de objeto)
SqlCommand sqlCom = new SqlCommand("select 1", conn)
{
CommandTimeout = 60
};Code language: JavaScript (javascript)
Configuração do timeout de conexão
É declarado dentro da string de conexão e não interfere no CommandTimeout:
Data Source=.;Initial Catalog=db;User ID=sa;Password=xxx;Connect Timeout=15
Connect Timeout=15 → tempo máximo de 15 segundos tentando abrir conexão com banco de dados.
CommandTimeout
Previous: SqlCommand