Depends on whether it goes out of scope or not.
If it does it will be closed anyway, and returned the connection pool (given you haven't disabled that).
So calling close implicitly or explicitly as you are doing makes your intent clear and makes that connection "instantly" available for reuse in the pool.
Idea was to persuade developers to get in and out of the db quick. Lots of small transactions. Not the old style open up a connection and then hide it so no one else could get at it, just in case it was needed again.
If Connection pooling is on the a using clause is equivalent to Create, open, Close.
If it's off then a using clause is equivalent to create, open,close,Dispose.
In either scenario, the real deal is to make sure it goes out of scope. Apart from very rare circumstances the connection should be a local reference and have a lifetime of this particular use. You wouldn't generally instantiate one at run time and make it a property of your mainform for intance.
usingstatement? I've made that a habit and use it everywhere..Closelikely doesn't dispose the connection because you could easily call.Openagain to reopen the connection.