In static constructor I check if I can open connection with all databases and then keep a static copy of ConnectionStrings and afterwards when needed use it.
Now if I create
private static List < OleDbConnection > _connections;
and store all the open connections as open connections? Can I use these connections till the application is on. Is there any harm in doing this?
This is already done for you by the system using connection pools.
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.aspx
To deploy high-performance applications, you must use connection pooling. When you use the .NET Framework Data Provider for OLE DB, you do not have to enable connection pooling because the provider manages this automatically. For more information about how to use connection pooling with the .NET Framework Data Provider for OLE DB, see OLE DB, ODBC, and Oracle Connection Pooling (ADO.NET) (https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/ole-db-odbc-and-oracle-connection-pooling).