2014-12-07 2 views
-1

Я узнаю о шаблонах проектирования объектов доступа к данным и реализую их с помощью C#/oracle. Однако, когда я пытаюсь запустить программу, я получаю сообщение об ошибке.StackOverflowException в DAO

Я просто пытаюсь добавить данные в свою базу данных, но я получаю следующее сообщение об ошибке:

An unhandled exception of type 'System.StackOverflowException' occurred in Test.dll

Это происходит в моей ReviewGame геттер и сеттер.

Вы бы так любезны, чтобы просмотреть мой код и посмотреть, где я ошибаюсь? Буду признателен за любую помощь.

public string ReviewGame { get; set; } 

"insert into review values(review_seq.nextval," + 2+ "," + review.MemberId + ", '" +review.ReviewGame+ "')"; 

ReviewDao reviewDao = new ReviewDaoImp(); 
Review r = new Review(); 

r.reviewGame = textBox1.Text; 
r.ToString(); 

reviewDao.addReview(r); 
} 
+1

Возможно, мне что-то не хватает, но похоже, что вы пытаетесь связать объект с строкой в ​​инструкции insert. Разве не обзор объекта? – Paul

ответ

3

Ваши свойства называют себя их получателями и сеттерами. Вы должны использовать поле подложки для хранения данных:

private string _reviewGame; 
public string ReviewGame 
{ 
    get { return _reviewGame; } 
    set { _reviewGame = value; } 
} 

Или вы можете использовать авто свойства:

public string ReviewGame { get; set; } 

(Обратите внимание, что я также изменено на имя свойства, чтобы начать с заглавной, который соответствует соглашениям.)

+0

Спасибо Стивену за то, что нашли время, чтобы посмотреть мой код и ответить на мой вопрос, он мне очень помог. Я принял ваш совет и использовал формат автоматической собственности и следующие соглашения об именах. Это решило исключение stackoverflow. И проблема со мной конкатенировать объект в строку в моей инструкции insert была решена путем вставки review.ReviewGame вместо проверки. Еще раз спасибо, это очень ценится. –

Смежные вопросы