¿Por qué este código arroja una excepción de operación no válida?InvalidOperationException La conexión no se cerró. El estado actual de la conexión está abierto
private SqlCommand cmd; // initialized in the class constructor
public void End(string spSendEventNotificationEmail) {
try {
cmd.CommandText = spSendEventNotificationEmail;
cmd.Parameters.Clear();
cmd.Parameters.Add("@packetID", SqlDbType.Int).Value = _packetID;
cmd.Parameters.Add("@statusID", SqlDbType.Int).Value = _statusID;
cmd.Parameters.Add("@website", SqlDbType.NVarChar, 100).Value = Tools.NextStep;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
} finally {
cmd.Connection.Close();
cmd.Parameters.Clear();
cmd.Dispose();
}
endCall = true;
}
Tal vez usted haya abierto su conexión antes? – Zbigniew
Creo que la raíz del problema está en la instancia de SqlCommand inicializado en el constructor de la clase. Tener esta var alrededor en todo su código podría ser mal utilizado fácilmente y conducir a errores desagradables en otras partes de su código – Steve
http://stackoverflow.com/a/9707060/4068 –