質問
現在のアプリケーションでは、かなり標準的なテーブルセットアップを使用しています。 。ネット XSD DataSet
そして TableAdapter
特徴。私の contracts
テーブルは、いくつかの標準的な契約情報と、 primary department
. 。このコラムは、 外部キー わたしの Departments
テーブル、基本的なものを保存する場所 department name
, id
, notes
. 。これはすべて私の環境でセットアップされ、機能しています SQLサーバー.
XSD ツールを使用すると、両方のテーブルを一度にドラッグでき、これら 2 つのテーブル間にある外部キーが自動的に検出/作成されます。これは、メイン ページで契約データを表示しているときにうまく機能します。
ただし、管理ページにアクセスして部門データを変更する場合は、通常次のような操作を行います。
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
ただし、この時点で、ここに壊れた外部キー参照があるという趣旨の例外がスローされます。 Contract DataTable
満たされました。
この問題はどうすれば解決できますか?XSD から外部キーを削除するだけで正常に動作することはわかっていますが、そこで追加の整合性チェックが行われ、XSD スキーマがデータベース内の SQL スキーマと一致するのは便利です。
解決
DataSet の Check-constraints をオフにしてみるか (プロパティにあります)、そのリレーションシップのプロパティを変更して、キーを単純な参照に変更してみてください。
所属していません StackOverflow