DataRelation

13/06/2008 - 13:30 von Robert Oberholzer | Report spam
Hallo NG,

Habe eine bestehende Oracle Datenbank mit 2 Tabellen
die ich mit einer DataRelation verbinden möchte.

Das Problem ist, das in der einen Tabelle der Key aus zwei Feldern besteht und
in der anderen Tabelle diese beiden in einem Feld vereint sind.

Wie kann ich diese beiden Felder angeben?

DataColumn colParent = ds.Tables["RT"].Columns["KEY"];
DataColumn colChild = ds.Tables["FOST"].Columns["NUM"] ???? zweites Feld
DataRelation dr = new DataRelation("RTtoFOST",colParent, colChild);

Danke für Eure Hilfe
Robert Oberholzer
 

Lesen sie die antworten

#1 Elmar Boye
13/06/2008 - 17:18 | Warnen spam
Robert Oberholzer schrieb:
Habe eine bestehende Oracle Datenbank mit 2 Tabellen
die ich mit einer DataRelation verbinden möchte.

Das Problem ist, das in der einen Tabelle der Key aus zwei Feldern besteht
und in der anderen Tabelle diese beiden in einem Feld vereint sind.



Das geht so nicht.

Wenn Du dies so belassen willst, so muß Du für die Tabelle mit zwei
Feldern eine berechnete Spalte einführen, die den Schlüssel
zusammenführt.
Was allerdings nur bei Zeichenketten relativ einfach funktioniert.
Sind es Integer Werte so wàre eine Vereinigung in eine Long denkbar.

Besser wàre aber, Du trennst die Werte bereits mit SQL bei der
Abfrage auf, wenn es in der Datenbank so vorgegeben ist.

Wie kann ich diese beiden Felder angeben?

DataColumn colParent = ds.Tables["RT"].Columns["KEY"];
DataColumn colChild = ds.Tables["FOST"].Columns["NUM"] ???? zweites Feld
DataRelation dr = new DataRelation("RTtoFOST",colParent, colChild);



Der DataRelation Konstruktor kennt weitere Überladungen.
Für zwei (oder mehr) Spalten bietet sich an:
DataRelation relation = new DataRelation(
"RTtoFOST",
new DataColumn[] { parentColumn1, parentColumn2 },
new DataColumn[] { childColumn1, childColumn2 },
false);

Gruß Elmar

Ähnliche fragen