- PR -

型付けられたデータセットのリレーション例外エラー処理について

1
投稿者投稿内容
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2002-11-06 10:47
XMLデザイナで型付けられたデータセットの2つのテーブルにリレーションを作成しています。
CSVファイルから子テーブルにデータを取得しようとしているのですが、
「System.Data.InvalidConstraintException:ForeignKeyConstraint Table1には親テーブルに存在している子キー値 (1) が必要です。」
がスローされてしまいます。

例外がスローされるのは分かるのですが、CSVデータ取得中はそのまま処理を継続して行にエラーとしてマークさせたいと思っています。

そのため[RowChanging]イベントで [e.Row.BeginEdit()]と制約を一時停止して
[RowChanged]イベントで

Try
e.Row.EndEdit()
Catch ex As Exception
e.Row.RowError = ex.Message
End Try

と出来ないかやってみたのですが、どうも[RowChanging]のイベントの前でエラーが発生してしまうようなので、解決方法が見つからずに困っています。
なにかよい方法はありませんでしょうか?
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2002-11-07 10:49
いろいろと試しています。

どうもRowChanging内でBeginEditを呼び出してはいけないのですね。
そのようなエラーが出てしまいました。

XMLで設定された制約はどこから例外が発生しているのでしょうか?
データセットで作成されたコードを変更するわけにもいかないですね〜。
リレーションの制約を無効にする方法を探しています。
よろしくお願いいたします。
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2002-11-08 11:04
なんとか解決できました。
データセットのEnforceConstraintsプロパティをFalseにして制約を無効にし、
データ処理を実行した後でTryCatchで内でTrueに戻す方法です。
1

スキルアップ/キャリアアップ(JOB@IT)