Back to basics.

I have an application written in c# and I am using the sqlClient to connect to database.

I have several methods and I usually open the connection in a try catch block 

```
try{
    **open connection**
   //Mehod1()
   //Method2()
   ........
 }catch(exception){
   //Do something
 }finally{
  **close connection**
 }

```

**The Problem is that there are a lot connections in pool.**

I am using master page and in master page I am loading the menu from database (different menu for each user).

Then in main pages I open again a connection to get the rest data.

In the middle of the page it may be a method that need again to connect to database.

**My Question is**

Is this a good practise? 

Am I doing something wrong?

Is there a better practise to avoid multiple connections?
What about singleton pattern?

Thanks in advance

> 
> ***SOLUTION***
> 
> 
> I found the reason!!!
> 
> 
> I had forgot to close a connection.
> 
> 
> I was sure that I had close it, but
>  sometimes you can't be so sure.
> 
> 
> 

Thanks everyone for your responses