Managing and Closing Dynamically created SQL connections in .net

I have a c# windows form application that connects to databases dynamically where each user may connect to different databases.

The current implementation is as follows:

Connection Repository that contains a dynamically populated list of connections (per user).

When a user initiates a request that requires a database connection the respective connection is looked up from the connection repository ,opened , and then used in the user request .

Code Sample from the connection repository

public class RepoItem
    public string databasename;
    public SqlConnection sqlcnn;

public class ConnectionRepository
    private List<RepoItem> connectionrepositroylist;

    public SqlConnection getConnection(String dbname)
        SqlConnection cnn = (from n in connectionrepositroylist
                             where n.databasename == dbname
                             select n.sqlcnn).Single;

        return cnn;

sorry for any code errors i just improvised a small version of the implementation for demonstration purpose.

I'am not closing connections after a command execution because it may be used by another command simultaneously.

The questions are: Should i be worried about closing the connections ? Does connection close automatically if it is idle for a specific period ? I have a method in mind to implement a timer in the created Connection Repository and check for idle connections through the Executing ConnectionState Enumeration and close them manually. Any suggestions are welcome .

I didn't post the complete implemented code because it is quite big and includes the preferences that affect the populating of the connection list.

When i want a specific connection i call the getConnection function in the ConnectionRepository class .