2016-07-05 5 views
0

私はこの質問をする前にこんにちは私は質問の提案を見て、私を助けることができるものはありません。私は2つのテーブル(ユーザーと友人)の間の関係を持っていますユーザー(親)のステータスフィールドが変更されたとき、どのように友人(子)ステータスフィールドを更新しますか?関係:親フィールドが変更された場合、子フィールドを更新する方法

関係:

Relationship

ユーザーのステータスが変更された場合、それは自動的に友人のステータスを変更するように、私は関係を作ってみた:

New Relationship

しかし、それは更新されません。友人ステータスフィールドは、ユーザーステータスが変更されたとき:/任意の提案?ありがとう

+0

カスケード更新がRDBMSに正しく伝播されましたか? – stuartd

+0

私はそうは思わない。親DB内のステータスを主キーにする必要がありますか? – richardj97

+0

いいえ、私はPKが良いアイデアだとユーザーの状態を考えるとは思わない。どのRBMSを使用していますか、どのようにスキーマをスキップしていますか? – stuartd

答えて

1

親テーブルのColumnChanging/ColumnChangedイベントを使用してステータスの変更をキャッチすることができます。これらのイベントで独自のビジネスルールコードを書くことができます。

すべてTypedDatasetデザイナーによって生成されるクラスは、部分的(フォームとして)です。列をダブルクリックし、Visual Studioで生成されたコードを見てください。

Partial Public Class MyDataSet 
    Partial Class MyDataTable 

     Private Sub MyDataTable_ColumnChanging(sender As System.Object, e As System.Data.DataColumnChangeEventArgs) Handles Me.ColumnChanging 
      If (e.Column.ColumnName = Me.MyColumn.ColumnName) Then 
       'Add user code here - Get and update ChildRow 

      End If 

     End Sub 

    End Class  
End Class 

または、親のステータス値を編集している途中で子ステータスを更新するコントロールでイベントを処理できます。

関連する問題