In the case of DB connections (and Commands, Adaptors and such like) these should be instances: because they should be Disposed as soon as possible to ensure they don't "linger" and mess things up later (they are scarce resources, so they should be released properly.
The easiest way to do that is via
using
blocks:
using (MyObj dbObj = new MyObj())
{
... use it here ...
} ... destroyed when it goes out of context.
Static isn't used that much - I use it when I need data that is common to all instances, and for methods that don't need instance data.
I suspect the video trainer was overgeneralising: but I only use extension methods when I'm expanding existing sealed classes -
string
for example - for classes "I control" I'd use instance methods. The "less typing" bit is generally untrue, as most of the time a static method needs the class name for the call as well as teh method name - just like an non-static method needs the instance variable name.