非連結列の値はグリッド内の他のデータから派生されるため、通常、非連結列は読み取り専用にします。その場合は、列のスタイルの Locked プロパティを True に設定する必要があります。
Locked が False で、更新が許可されている場合は、ユーザーが非連結列の値を編集できます。非連結列が編集されると、その行はダーティとマークされ(レコードセレクタ列に鉛筆アイコンが表示される)、通常どおりに更新シーケンスが実行されます。しかし、格納先のデータベースフィールドがないため、グリッドには、変更されたデータの処理方法がわかりません。したがって、編集された値を正しく格納するためのコードを UnboundColumnUpdated イベントに記述する必要があります。これらの値は、他のデータベーステーブルなどに任意の方法で格納できます。
BeforeUpdate は、更新操作のキャンセルに使用できます。したがって、非連結列が他のデータベースと連携して使用される場合は、非連結列の更新を BeforeUpdate で行う必要があります。この更新操作が失敗した場合は、イベントをキャンセルする必要があります。しかし、更新操作が成功した場合は、連結列の更新を進める必要があります。そこで連結列の更新が失敗する可能性があるため、非連結列に関連するデータベース操作は、トランザクションベースで処理する必要があります。
連結列の更新が成功した場合は、AfterUpdate イベントが発生するので、非連結列のトランザクションをコミットします。連結列の更新が失敗した場合は、更新が行われた方法に基づいて、.NET のトラップ可能なエラーハンドラ内で非連結列のトランザクションをロールバックする必要があります。トランザクションを使用できない場合は、更新の前に元の非連結列の値を格納しておき、連結列の更新が失敗した場合に再度更新を実行して元の値を復元します。