Regarding best practice for managing database connections in a .NET application -- I know that, in general, it\'s bad to pass around a connection object.
However, I
This link may be helpful: Best Practices for Using ADO.NET
Here's an interesting excerpt.
For best performance, keep connections to the database open only when required. Also, reduce the number of times you open and close a connection for multiple operations.
I've always followed the practice of opening connections in a using block, so that the Dispose method (and hence the Close method) is always called without my worrying about it. Using this approach I've never encountered a situation where poor performance was linked either to excessive concurrent connections or excessive setup or tear down operations.