You could use an ORM (a light one like ORMLite, or a heavyweight one like Entity Framework) and have that do the legwork for you converting data to and from POCOs.
Literally, my code for getting data out of a database using OrmLite is:
var myProducts = connection.Query<Product>("SELECT * FROM Product");
And I get back a collection of products. You don't even need the hand-written SQL (though in more complex cases, you might).
EF also makes heavy use of LinqToSQL, which means you're rarely (if at all) bothering with hand-written SQL and are always dealing with first-class POCOs and LINQ to do all the conversions.