SqlDataReader
имеет свойство GetName()
, которое принимает индекс и возвращает имя столбца.
GetName () поддерживается в большинстве версий .Net Framework (начиная с версии 1.1) и .Net core (начиная с версии 1.0).
while (reader.Read())
{
string header = string.Empty;
for (int i = 0; i < reader.FieldCount; i++)
{
header += $", {reader.GetName(i)}";
}
}
Или вы можете сделать это, используя метод цепочки и Linq:
// returns List<string>
var columns = Enumerable.Range(0, reader.FieldCount)
.Select(reader.GetName)
.ToList();
// columns joined on ", "
var header = string.Join(", ", columns);