SqlDataReaderを使用してC#コードを作成して実行しているSQLクエリがあります。クエリは非常に簡単で、次の値になります。エイリアスを使用している場合のみ、SqlDataReader.get_Item()でSystem.IndexOutOfRangeExceptionが発生する
SELECT colName1 AS altColName1, colName2 AS altColName2 FROM table
SQL Server Management Studioでクエリを実行すると、期待どおりの結果が得られます。
また、私は単純なクエリを実行すると:SqlDataReaderのを使用して
SELECT colName1, colName2 FROM table
を、それは明らかに私は、エイリアスを取得しない以外、正常に動作します。
問題がSqlDataReaderのを使用し、それを最初のクエリを与えたときに、ですが、私は得る:
System.IndexOutOfRangeException -- colName1
、明らかにそのインデックスが添付エイリアスなしで正常に動作しますので、私は困惑です。私は何か間違っているのですか?または、エイリアスで動作するクエリを取得するために使用できる回避策がいくつかありますか?これが機能する理由を正確に私は理解していないのに
SELECT DISTINCT colName1 AS altColName1, colName2 AS altColName2 FROM table
、元はしませんでした:
編集:は、私はそれがにクエリを変更することにより、正常に動作するようになりました。
あなたが何をしているのかをあなたが見せるまで間違っていると仮定するのは難しいです。 SqlDataReaderからデータを取得する場所にコードを表示します。 –
System.IndexOutOfRangeExceptionをスローするC#コードを投稿できます。 – Balan
@AndyKorneyevはい、私は実際のC#コードを取得できなかったことをお詫びします。クエリを構築するために使用するラッパーのヒープに埋め込まれていますが、最終的にはC#の 'System.Data.SqlClient'名前空間にある' SqlDataReader.get_Item() 'が呼び出されます。 –