【问题标题】:How to print all columns in a datareader如何打印数据读取器中的所有列
【发布时间】:2023-12-23 22:57:01
【问题描述】:

使用 c# 如何打印数据读取器中的所有列。

【问题讨论】:

标签: c# ado.net datareader


【解决方案1】:

当传递给数据读取器时,此方法将返回一个可枚举的列名列表:

static List<string> GetDataReaderColumnNames(IDataReader rdr)
{
    var columnNames = new List<string>();
    for (int i = 0; i < rdr.FieldCount; i++)
        columnNames.Add(rdr.GetName(i));
    return columnNames;
}

【讨论】:

    【解决方案2】:
    for (int j = 0; j < x.VisibleFieldCount; j++)
                Console.WriteLine(x.GetName(j));
    

    【讨论】:

      【解决方案3】:

      为了给答案增加一些价值,我提供了一个可能的扩展方法来返回给定DataReader 的列名。

      public static IEnumerable<string> GetColumnNames(this IDataReader reader)
      {
          for(int i=0; i<reader.FieldCount; i++)
              yield return reader.GetName(i);
      }
      

      【讨论】:

      • 我喜欢扩展方法,我喜欢注入和暴露这种行为.. :)