SQL .NET Provider by default uses connection pooling. When connection is closed, it is put into the connection pool. SQL .NET Provider may reuse that connection later. In some cases this behaviour causes problems.
Let's consider samples database that comes with SQL Auditor. You can choose to re-create it at any time. During this process all connections to samples database are killed. The problem is, if pooling=true was used when opening connections to samples database, next time SQL Auditor opens SqlConnection, it is taken from the connection pool. But because all connections have been killed, we get pesky “General Network Error” while performing any operation involving SqlConnection (ExecuteReader, ExecuteScalar, etc.).
Solution to this problem is to specify key/value pair pooling=false</strong> in connection string when using SqlConnection object to connect to the samples database.