2009-04-10 3 views
0

Betrachten Sie, ich habe 'n' Tabellen, die mit MS Access erstellt werden.Wie finden Sie Beziehungen zwischen Tabellen

Jetzt muss ich die Beziehung zwischen den Tabellen finden. d. h. wie die Tabellen miteinander verknüpft sind, wenn Änderungen in einer Tabelle in einer anderen Tabelle widergespiegelt werden.

gibt es irgendein dies mit C#

Antwort

1

Entweder Google für MSysObjects (siehe this, zum Beispiel) oder verwenden GetSchema auf OleDbConnection.

3

Ich bin mir nicht sicher, wie man von C# findet. Aber in ms-access können wir leicht finden.

Open-Access-Datenbankdatei. und klicken Sie auf Menü (Extras-> Beziehungen). Sie können die aktuellen Beziehungen anzeigen.

Danke und Grüße Haranadh

+0

sein verwendet, um Beziehungen zu schaffen und nichts, was ich bin in der Lage, dort zu sehen jetzt – Arunachalam

+0

@Arunachalem: Sie können die vorhandenen Tabellen hinzufügen, um Diagramm und dann Beziehung gezeigt. – TcKs

+0

Diese Antwort ist meistens falsch. Das Beziehungsfenster repräsentiert nur das, was Sie dort eingegeben haben, es hat überhaupt nichts damit zu tun, wie die Tabellen zusammenhängen. Es ist auch keineswegs umfassend. sry – Praesagus

0

Ich glaube nicht, dass Sie Zugang automatisieren müssen, dies zu tun. Alles, was ich brauche, ist ADOX. Dieser Artikel zeigt, wie ADOX verwenden Beziehungen in VBA zu kopieren:

ACC2002: How to use ADOX to Import Relationships

Beziehungen sind unter der Eigenschaft ADOX.Table.Keys definiert. Ich kann dir nicht helfen, das in C# zu konvertieren, aber dieser Code zeigt dir, welche Teile des ADOX-Objektmodells du dafür verwenden musst und ich hoffe, dass du es herausfinden kannst.

0
DataTable schemaTable = 
    oledbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, 
     new object[] {null, null, "OneTableName"}); 

oder

DataTable schemaTable = 
    oledbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, 
     new object[] {null, null, "OneTableName", null, null, "OtherTableName"}); 
Verwandte Themen