eppure se lo fai nel finally io direi che la chiudi sempre!

conn.Dispose() e' una valida alternativa alla conn.Close(), perche la dispose di una connection ne prevede anche la sua chiusura!