If you write things like this, all these years:
string query = "SELECT * FROM myUsers WHERE Name = '" + aName + "'";
ResultSet result = sql.Execute(query);
UserList users = TransformResultSetToUsers();
then you it's time to find yourself a proper ORM (and to get very afraid of SQL injection attacks).
What an ORM does for you is hide the methods, security, performance, caching, mapping etc that otherwise would cost a tremendous amount of time to program yourself. What about doing this:
User currentUser = DaoUsers.GetUserByName(aName);
currentUser.Name = "new name";
DaoUsers.UpdateUser(currentUser);
which covers all querying, updating etc for you. And if you test at home with MySQL, and at work with SQL Server, all you need to do is change the connection string. Oh, and it provides caching (in cases like NHibernate and others), which makes this lightning fast, without even touching the database if it's not needed.
All-in-all: using an ORM is imply easier. No worries anymore. No more typos. Let the ORM engine take care of everything. Design the database from objects, not from "CREATE TABLE" statements. Focus on programming logic, instead of worry about SQL diversities.
And above all: type safety if you use an ORM with a type safe OO language, which will let the compiler catch your errors before you even start to debug for them.