ステートメントSqlDataReader
から返されるものがあります。ExecuteDataReader
私が望むのは、グリッドにバインドする直前に、データ リーダーの列名を変更することだけです。
状況は次のとおりです。
- まず、グリッドの構造を構築します (構造は、過去にシステム内のストアド プロシージャの出力に基づいて入力されたデータベース内のテーブルにあります)
- データ リーダーを実行してストアド プロシージャを実行する
- データ リーダーをグリッドにバインドする
ここに問題があります。ストアド プロシージャ内の 1 つの列が大文字で、グリッド内の関連する列が小文字の場合、グリッドは塗りつぶされません。
そして、このアーキテクチャに基づくストアド プロシージャがたくさんあります。表示する行数が多いものもあります。そのため、パフォーマンスのためにデータリーダーを使用しています。
- ストアド プロシージャの列名を変更したくない (手間がかかりすぎる)
- データ リーダーの結果を別のデータ ホルダーにコピーしたくない (オーバーヘッドと低パフォーマンスのため)
データ リーダーの列名を変更する方法の 1 つにすぎません
sqlDataReader リーダー。reader.executedatareadet();
たとえば、データ リーダーが返された後、2 つの列 ( A,B
) があります。
のようにグリッドにバインドする前に、列'A'
を'a'
(小文字に変換) に変更したいreader.GetName(i)
みたいなことができるようになりたい
reader.SetName(i)
しかし、データリーダーの列名を変更できないようです