11月24日(木)3、4コマ目
今日のソースコード C#+例外 練習問題「パスワード変更」 先日作ってもらった「パスワード変更」の正解例のソースコードをあげておきます。 RegistPasswordResultEnum.cs パスワード変更結果を通知するための列挙型。 UserDAO.cs ポイントは Insert()メソッドでSQL実行(cmd.ExecuteNonQuery())時に発生する例外に応じて処理を行っているところ。 また、ステップ2用にパスワードが設定済みか否かを判断するためのGetPasswordCount()メソッドがある。 Index.cshtml.cs OnPost()にて、パスワード変更メソッド(UserDAO.Insert())の戻り値の応じて、エラーメッセージをセットしている。 Index.cshtml とくにややこしいところはないと思います。 今日、やったこと [評価用課題]オークションサイト(C#版) 今日のホワイトボード 階層化 今回の課題は階層化をしっかりしてください。 図 階層化 たとえば、「認証」はServiceクラスが提供する機能で、 UserDAOクラスには認証機能は作りません 。UserDAOクラスには認証のために必要な機能のうち、DBアクセス部分(ログイン名とパスワードの組み合わせ件数をカウントする機能)だけを作ります。 SQLをちゃんと使うこと UserDAOクラスのログイン名とパスワードの組み合わせ件数をカウントするメソッドですが、ぜったいに下図のように ループをまわしてカウントしない でください。 図 やってはいけないこと ページ遷移 今回は3ページ構成です。よって、ページ遷移が必要になります。 ページ間をまたいで共有するデータ(ログインユーザー情報など)があります。ひさしぶりにSessionオブジェクトが必要です。 次回は 引き続き、課題の時間です。