DropDownList に入力するために使用される SQL テーブルに値のリストがあり、各項目の値として一意の整数を持ち、(SqlDataSource を介して) 表示されるテキストとして文字列を持ちます。データベースには、リスト項目がアクティブかどうかを示すフラグである 3 番目のフィールドもあります (非アクティブな項目は DropDownList に表示されません)。
ドロップダウンで行われた選択は、テキスト値ではなく、整数値として (レコード全体を構成するデータセットの一部として) データベースに保存されます。
時間の経過とともに、項目を非アクティブとしてマークすることにより、DropDownList 内の項目が削除される場合があります。ただし、データの一部として現在非アクティブなアイテムが含まれている可能性がある古いレコードを開く必要はまだあります...
私の質問は、古いレコードのドロップダウンに欠損値が含まれていることを確認する最善の方法は何ですか?
頭に浮かぶ2つの方法は、次のいずれかです。
現在アクティブなアイテムのみを DropDownList に入力し、レコードをロードするときに、アプリが存在しない値を選択しようとしたときにそれをキャッチし、データベースに戻ってそれがどうあるべきか (テキスト値) を確認し、手動で追加しますドロップダウンに。
また...
DropDownList にすべてのリスト項目 (アクティブと非アクティブの両方) を設定し、レコードをロードしてから、すべての非アクティブな項目をプログラムで削除します (現在選択されているものはすべて除外)。
これらはどちらも特に効率的とは思えないので、この種のベストプラクティスがあるかどうか疑問に思っていましたか?