2012-04-24 10 views
1

には、3つのTablesAdaptersがリンクされています(リレーションシップと外部キーの両方がDBデザインから引き継がれています)。私も上の外部キーでTableAdapterをバインドするために、今しようとしている、私は次を得る:テーブルアダプタを使用してデータセットの外部キー制約を変更する方法

「制約を有効に失敗しました1つのまたは複数の行が非ヌル違反値 が含まれている、ユニークな、または外国人。キー制約。

ので、少し掘り後、私はそれは私が(DBのcontraintsはこれでOKであっても)TableAdapterでの同一外部キーを持っていることを好きではないことがわかりました。

私のDataSet(またはTableAdpapter)は、テーブルのプライマリキーのみを規制対象と見なす方法を教えてください。私はこれを投稿し5秒後に

+0

スキーマ(データセット)とテーブルを埋め込むコードを表示します。テーブルごとに個別に記入すると、その順序が重要になります。 –

+1

Sidenote:デバッガを使用して、制約例外の理由を確認できます。 'TableAdapter.Fill'ステートメントの直前にブレークポイントを設定してください。この行をクイックウォッチウィンドウで実行すると、デバッガで例外が発生します。次に、以下の行を実行して、エラーウォッチ(クイックウォッチウィンドウ内)を取得することができます: 'DataTable.GetErrors()'。次に、これらの行を 'RowError'プロパティで調べて、実際に何が例外を引き起こしているのかを確認します。 –

+0

ありがとう、知っておいてよかった! – Limey

答えて

1

[OK]をので、私は答えは(それはいつもどのように動作するかということではないでしょうか?)を見つける

問題は、私だけではなく、私の複数のテーブルから照会テーブルアダプタを追加したことでした単一のテーブルこのtableAdapterは、一意の制約に使用する列を「決定」したように見えます。

問題を修正するために、データセットデザイナーに行き、1つの主キーの代わりに2つの外部キー列を使用していることがわかるまで、「UniqueConstraint」を検索する必要がありました。

関連する問題