SqlDataReader オブジェクトの列の存在を確認する
データ アクセス レイヤーでは、多くの場合、ストアド プロシージャから返されたデータを処理するメソッドを作成する必要があります。さまざまな柱構造を持っています。 1 つのストアド プロシージャが他のストアド プロシージャと比較して追加の列を返すシナリオでは、両方のシナリオを処理できるようにメソッドを変更する必要があります。この記事では、SqlDataReader オブジェクト内の特定の列の存在を確認する方法について説明します。
解決策:
提案される解決策には、IDataRecord インターフェイスの拡張メソッドを作成することが含まれます。 HasColumn という名前。このメソッドは列名をパラメータとして受け取り、レコード内のすべての列を反復処理して、各列名を指定された列名と比較します。一致するものが見つかった場合は、列が存在することを示す true を返します。それ以外の場合は false を返します。
HasColumn 拡張メソッドのコードは次のとおりです。
public static class DataRecordExtensions { public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i = 0; i < dr.FieldCount; i++) { if (dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)) return true; } return false; } }
使用法:
SqlDataReader オブジェクトかどうかを確認するには特定の列が含まれている場合は、オブジェクトの HasColumn メソッドを呼び出して、対象の列名を渡すだけです。メソッドは次の値を返します。列が存在する場合は true、存在しない場合は false。これにより、ストアド プロシージャ内のさまざまな列構造を堅牢な方法で処理できるようになります。
以上がSqlDataReader で列の存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。