calling SqlConnection.Close() from class destructor causes exception

Well, today I'm designing a class that's basically function is to talk to a database.  I'm having a SqlConnection member to share between all the methods and thought it would be a good idea to put a call to .Close in the class destructor.

This is causing an InvalidOperationException...I'm a little confused by that...isn't the destructor for code to be run when the object is being garbage collected?  Wouldn't that be the right time to make sure a connection to a database is closed?  If anyone has any input on the subject I'm all ears (well eyes, but you get the idea).