In the general case, no, you should not use one connection - all .NET ADO.NET providers support pooling, and the usual template - open / close connections as needed (in using or try/finally , to ensure that the connection is closed in case of an exception) .
In a single-threaded client application, you can get rid of the use of a shared static connection, but this is unlikely to give you any measurable performance advantage - so don't do this.
In any other application, you should definitely not use a shared static connection, as it is not thread safe.
Joe
source share