2009-08-07 17 views
1

私はSQLを持っているデータテーブルを返すように、のように選択します。C#のデータテーブルが2列に参加し、同じ名前

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

TABLE1とtable2の両方がITEMNOという名前の列を持っています。

2つの別々の列をどのように参照しますか?通常は次のようなものを使用します:

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

ただし、これはitemnoという名前の最初の列を取得するようです。
SQL文を変更せずにitemnoという2番目の列を参照する方法はありますか? (私は私のSQL文を変更することができ、*を取り出して列の別名を入れることができます)。

答えて

3

代わりにインデックスで列を参照することができます。

datarow[0].ToString(); 

を私は非常に正直にかかわらず、それらをエイリアシング好みます。

+0

あなたは正しいです、それが唯一の選択肢です。 – Max

+1

ここに隠された危険があります。後でクエリを少し変更して、別の順序で列を返すようになると、コードは機能しなくなります。 –

+0

良い点NewInTown。エイリアシングはこれを実行する最良の方法です。 – Max

関連する問題