2009-08-07 8 views
1

Ich habe eine SQL-wie so wählen, welche eine Datentabelle zurückgibt:C# Datentabelle von SQL JOIN 2 Spalten denselben Namen

select * from table1 a join table2 b on a.id=b.id 

Beide Tabelle1 und Tabelle2 haben eine Spalte itemno genannt.

Wie referenziere ich die 2 separaten Spalten? Normalerweise würde ich etwas wie:

datarow["itemno"].ToString(); <=first column named itemno only 
datarow["b.itemno"].ToString(); <= fail 

Allerdings scheint dies nur die erste Spalte namens itemno zu bekommen.
Gibt es eine Möglichkeit, die zweite Spalte namens itemno zu referenzieren, ohne meine SQL-Anweisung zu ändern? (Ich weiß, dass ich meine SQL-Anweisung ändern kann, die * herausnehmen und Spaltenaliase einfügen).

Antwort

3

Sie können die Spalten von Index Referenz statt:

datarow[0].ToString(); 

ich viel würde es vorziehen, sie Aliasing aber um ehrlich zu sein.

+0

Sie haben Recht, und das ist die einzige Alternative. – Max

+1

Hier ist die Gefahr versteckt. Wenn Sie die Abfrage später etwas ändern und die Spalten in einer anderen Reihenfolge zurückgeben, wird der Code nicht mehr funktionieren. –

+0

Guter Punkt NewInTown. Das Aliasing ist bei weitem der beste Weg, es zu tun. – Max