データベースから読み取った情報で DataRelation コレクションを埋めようとしています。
DataTable schemaTable =
oleconnection.GetOleDbSchemaTable(
OleDbSchemaGuid.Foreign_Keys,
new object[] { null, null, tablename });
しかし、この情報は、それが実際の外部キー制約なのか、単なる関係なのかについては何も述べていません。このため、DataRelation コンストラクター (createConstraints) の 4 番目のパラメーターに設定する値がわかりません。
public DataRelation(
string relationName,
DataColumn[] parentColumns,
DataColumn[] childColumns,
bool createConstraints
)
特に、MS Access では、2 つのテーブルをリレーションで接続できますが、データの整合性チェックを強制することはできません。いくつかの追加の調査では、このような強制されていない関係が OleDbSchemaGuid.Referential_Constraints スキーマ テーブルにも表示されることが示されました。
必要な情報はどこで入手できるのだろうか。道を教えてください。