2013-03-22 78 views
-3

我正在開發一個Spring .net應用程序。預計1實際0

我有一個登錄頁面與領域 - 登錄ID密碼

在需要登錄的有該候選人 填寫一個表格,以便登錄後,我檢查,如果候選人已經填好的表格,然後將值從取數據庫並顯示在表單字段中。 現在當候選人沒有填寫表格的數據庫空行,因此它給了我上述錯誤。請告訴我該如何解決這個錯誤。

我嘗試檢查,如果obj爲null,但它並沒有去到下一行檢查obj的是NULL立即拋出上述異常

它讓錯誤發生在Page_Load功能的第6行 例外:EmptyResultDataAccessException被抓 錯誤Resultsize預計1實際0

+1

你還沒有告訴我們你已經做了什麼來嘗試修復錯誤。拋出什麼異常,什麼是錯誤信息,哪一行拋出異常? – 2013-03-22 05:45:53

+1

如果這些對象是Spring.Net的一部分,我會查看文檔以查看查詢是否有任何返回任何行的示例。如果沒有(並且我非常肯定像Spring.Net這樣的框架將足夠成熟以處理這種情況),那麼我會將調用包裝在您重寫方法的try-catch塊中,而不是簡單地返回結果,因爲它聽起來像DB調用中出現問題。 – Tim 2013-03-22 05:46:06

+0

還沒有做過適當的驗證? – Freelancer 2013-03-22 05:53:29

回答

1

正如我前面所說,我從來沒有使用Spring.NET的工作,但在文檔考慮看看我相信你可以使用的方法不對AdoTemplate類。根據文檔,將會執行一個使用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中工作,所以這是基於相當粗略的文檔閱讀。希望它至少能讓你走上正確的道路。

相關問題