|
分類:[.NET 全般]
VB2008 Ver9.0 、.NET Framework VEr3.5 SP1を使用しています。
ADO.NETのDataReaderを使用し、ODBC経由でSQLを発行した結果より Itemプロパティに相対位置ではなく項目名を指定し、値を取得したいのですが、 SELECT句に異なるテーブルの同一の項目が存在する場合の取得方法がわかりません。
発行するSQL文の例は以下のとおりです。 <SQL文> select Aテーブル.C項目,Bテーブル.C項目 from Aテーブル,Bテーブル
実際のコードは以下のように作成し、 コンパイルエラーは発生せず、処理も実行されましたが、 取得された値は両方とも「Aテーブル.C項目」でした。
<コード> 変数A = dr.Item("C項目") 変数B = dr.Item("C項目")
ちなみに、 変数A = dr.Item("Aテーブル.C項目") 変数B = dr.Item("Bテーブル.C項目")
とした場合はコンパイルエラーにはならず、 実行時にエラーロジックに飛んでしまいました。 また、GetName メソッドを使用して項目名を確認した結果、 dr.GetName(0)とdr.GetName(1)は同じ「C項目」でした。
SQLのSELECT句の項目名を修正する方法も考えられますが、 実行実績のあるSQLであるということと、修正範囲が広く、 多大な修正作業が発生するということから、 極力修正は避けたいと考えております。
お忙しいところ申し訳ありませんが どなたかご教授いただきますよう、よろしくお願いいたします。
|