LINQ2SQL をデータソースとして XtraGrid を使用していますが、いくつか問題があります。
データベースに変更を投稿しているときに、データ検証エラーが発生することがあります (たとえば、一意のインデックス違反、トリガー エラー、または FK が存在しない場合、または誰かの親を削除しようとした場合など)。この場合、ユーザーに通知して、データを修正したり行を元に戻したりできるようにする必要があります。
残念ながら、コードを配置してそれを可能にする最適な場所を見つけることができませんでした。イベント本体内GridView.ValidateRow
では、基礎となるデータはまだ変更されていません (dataContext.SubmitChanges()
呼び出しによる変更はありません)。
イベントは変更を DB に保存するのに適した場所のGridView.RowUpdated
ように見えますが、エラー行をフォーカスしたままにすることができません (ユーザーがフォーカスを別の行に移動して行の更新を行った場合、このイベント ハンドラーの完了後にフォーカスが消えます)。
GridView での挿入/更新/削除操作中にデータベース エラーを処理する一般的な解決策は何ですか?