-1

GV からレコードを選択すると、別のページ details.aspx が呼び出されます。詳細ページには、SelectMethod="GetData" を使用して FormView を含むフォームがあり、選択した ID レコードのデータを表示します。

Public Function GetData( ByVal id? As Integer) As Ems_Candidate
            試す
                // レコード ID を memVar に保存して、画像を取得するときに使用します
                strRecNo = id.ToString

                LoadCandidateImage() を呼び出す

                _db.DbSet_Candidates.Find(id) を返す

            ex を例外としてキャッチ
                ModelState.AddModelError("ModelError", ex.Message.ToString)
                戻る 1
            エンドトライ
終了機能

データが FormView にバインドされると同時に、このレコードのラベルにデータを表示する必要がありましたが、FormView モデルの外部では、上記のメソッドを次のように更新しました。

Public Function GetData( ByVal id? As Integer) As Ems_Candidate
        試す
            // レコード ID を memVar に保存して、画像を取得するときに使用します
            strRecNo = id.ToString

            LoadCandidateImage() を呼び出す

    // 開始: 新しい行が追加されました
            Dim objQuery As IQueryable(Of Ems_Candidate) = _
                _db.DbSet_Candidates の c から
                c.CandidateID = ID
                cを選択

            For Each c In objQuery
                If c.CandidateStatus.Equals("A") Then
                    Me.lblCandidateStatus.Text = "アクティブ"
                ElseIf c.CandidateStatus.Equals("D") Then
                    Me.lblCandidateStatus.Text = "削除済み"
                ElseIf c.CandidateStatus.Equals("W") Then
                    Me.lblCandidateStatus.Text = "免除"
                そうしないと
                    Me.lblCandidateStatus.Text = "該当なし"
                終了条件
            次

    // 終了: 新しい行が追加されました

            _db.DbSet_Candidates.Find(id) を返す

        ex を例外としてキャッチ
            ModelState.AddModelError("ModelError", ex.Message.ToString)
            戻る 1
        エンドトライ
終了機能

データを返す前に、必要なデータを選択できるように、データベースを IQueryable として再度クエリする必要がありました。

Ado.Net を使用している場合でも、同じ場所でデータベースを 2 回ヒットするのは実用的ではないと思います。コードを強化する方法はありますか?

助けてくれてありがとう。

4

1 に答える 1