-3

私はSpring .netアプリケーションを開発しています。

フィールドのあるログインページがあります-LoginID Password

ログイン時 - 候補者が入力するフォームがあるため、ログイン後、候補者がフォームに既に入力しているかどうかを確認し、データベースから値を取得してフォーム フィールドに表示します。候補者がフォームにデータベースの null 行を入力していない場合、上記のエラーが表示されます。このエラーを解決する方法を教えてください。

obj が null かどうかを確認しようとしましたが、次の行に移動して obj が NULL であることを確認しません。すぐに上記の例外がスローされます。

PAGE_LOAD 関数の例外の 6 行目にエラーが発生しました:EmptyResultDataAccessException がキャッチされました 不正な結果サイズが予想されます 1 実際の 0

4

1 に答える 1

1

上で述べたように、Spring.NET を使用したことはありませんが、ドキュメントを参照すると、AdoTemplateクラスの間違ったメソッドを使用している可能性があります。 QueryForObjectドキュメントによると、IRowMapper を使用して結果セットをオブジェクトにマッピングするクエリを実行します。クエリが正確に 1 つのオブジェクトを返さない場合、例外がスローされます。

あなたの例では、ユーザーが登録されていない場合、データベースに存在しないため、0 の結果が返されます。したがって、エラーIncorrect Resultsize Expected 1 Actual 0

メソッドを使用してみてくださいQueryWithRowMapper。(ドキュメントによると) 次のメソッドの 1 つですMapping result sets to objects

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

へのキャストがCandidateSession失敗しない場合は、null オブジェクトが返されることを期待します。

繰り返しますが、私は Spring.NET で作業したことがないため、これはドキュメントをかなりざっと読んだことに基づいています。うまくいけば、少なくとも正しい道を歩むことができます。

于 2013-03-22T06:06:37.337 に答える