If you're having problems training your dog, here's a little secret:
Have someone watch you. It could be a friend, family member, or even a professional trainer. If you're in a class, ask the instructor to give you some personal time to see if you are doing things correctly.
What to watch for:
Be consistent. If you say things differently or move your hands or body in different ways, you could be confusing your dog. And these are things you may not notice about yourself. Have your friend watch to see if you are being consistent.
Be positive. If you become angry when you are frustrated, this helps no one, especially the dog. When training commands aren't consistent (see above), the confused dog won't be able to follow them. Don't get mad... get happy. If you can stay positive, this helps your dog stay interested in the activity. He wants to please you, so if you are happy, he will be happy and anxious to please you.
Watch your body language. If you crouch over your dog when giving commands, he might learn that as one of the cues he associates with that command. You may not realize you are doing this, but your observer will tell you.
Give commands only once. If you find yourself repeating something many times, your dog isn't understanding the process. That's your fault... not the dog's. Ask your friend to notice what you are doing that might contribute to this lack of comprehension. Ultimately, most of these things relate right back to consistency.
Bottom line... if you're not enjoying this, neither is your dog, and it will be difficult to reach a level of comfort and good manners.