Ожидаемый 1 Фактический 0

Я разрабатываю приложение Spring .net.

У меня есть страница входа с полями - логин пароль

При входе в систему - кандидат должен заполнить форму, поэтому после входа в систему я проверяю, заполнил ли кандидат форму, а затем значения выбираются из базы данных и отображаются в полях формы. Теперь, когда Кандидат не заполнил форму нулевыми строками базы данных для него, и, следовательно, он дает мне вышеуказанную ошибку.. Пожалуйста, скажите мне, как я должен устранить эту ошибку.

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

ОНО ДАЕТ ОШИБКУ В СТРОКЕ 6 ИСКЛЮЧЕНИЯ ФУНКЦИИ PAGE_LOAD: Обнаружено исключение EmptyResultDataAccessException Неправильный размер результатов Ожидаемый 1 Фактический 0

1 ответ

Как я уже говорил выше, я никогда не работал с Spring.NET, но, взглянув на документацию, я полагаю, что вы можете использовать неправильный метод AdoTemplate учебный класс. QueryForObjectсогласно документации, `выполнит запрос, отображающий набор результатов на объект, используя IRowMapper. Исключение выдается, если запрос не возвращает ровно один объект.'

В вашем примере, если пользователь не зарегистрирован, он не будет в базе данных, поэтому будет возвращено 0 результатов. Отсюда и ошибка Incorrect Resultsize Expected 1 Actual 0,

Попробуйте использовать QueryWithRowMapper метод, как это (опять же, согласно документации) один из методов для Mapping result sets to objects:

return (CandidateSession)template.QueryWithRowMapper(CommandType.StoredProcedure, "spGetCandidateSession", candidateMapper, parameters);

Если приведение к CandidateSession не терпит неудачу, я ожидал бы, что нулевой объект будет возвращен.

Опять же, я никогда не работал в Spring.NET, так что это основано на довольно кратком чтении документации. Надеюсь, это, по крайней мере, заставит вас пойти по правильному пути.

Другие вопросы по тегам