Код правильный и работает. Поставьте в отладчике точку прерывания и посмотрите, где программа выдает ошибку.