I know this is not quite what you were asking for but have you considered taking advantage of connection pooling?

Pass the connection string to each procedure that accesses the database and use that string to open a new connection object. If the connection string is identical to another connection (that has recently been used), this existing connection will be reused (instead of establishing a new one).

NB: User name and Password must not be part of the connection string.