AndyJump
When working on medium to large projects people generally use some sort of ORM (Object-Relational Mapping http://en.wikipedia.org/wiki/Object-relational_mapping) to handle turning the tables into objects either dynamically or via code generation.
This can cut out months of work when there are lots and lots of tables, but it can still take quite a while to get everything setup and ready.
LINQ, which is included in .Net 3.5, is targetted at this problem and might well be worth looking at to see if its appropriate for your project. CLSA.Net (www.lhotka.net) is also supposed to be pretty good and a very complete solution.
You can always access the tables directly rather than providing objects to interact with them but this can lead to lots of problems, bugs and work. The OO route provides a single location for each table if something needs to change or a bug to be fixed. It also can be more flexable and can help facilitate caching, concurrency issues, remoting and other stuff I've no doubt forgotten about 