When a connection is opened first time, a connection pool is created and is based on the exact match of the connection string given to create the connection object. Connection pooling only works if the connection string is the same. If the connection string is different, then a new connection will be opened, and connection pooling will not be used.
Let us try to explain the same pictorially. In the above figure, you can see there are three requests “Request1”, “Request2”, and “Request3”. “Request1” and “Request3” have same connection string so no new connection object is created for “Request3” as the connection string is same. They share the same object “ConObject1”. However, new object “ConObject2” is created for “Request2” as the connection string is different.
Note: – The difference between the connection string is that one has “User id=sa” and other has “User id=Testing”.
Enable and Disable Connection Pooling
For .NET it is enabled by default but if you want to just make yourself double sure , set Pooling=true in the connection string. To disable connection pooling set Pooling=false in connectionstring if it is an ADO.NET Connection.
If it is an OLEDBConnection object set OLEDB Services=-4 in the connection string.
See following ADO.NET interview questions videos on Dataset is a connected while datareader is disconnected: –