Ожидаемый 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, так что это основано на довольно кратком чтении документации. Надеюсь, это, по крайней мере, заставит вас пойти по правильному пути.