在 SqlDataReader 中获取正在读取的列的 ID

Get the ID of the column being read in SqlDataReader

我目前正在读取一个古老的存储过程。

我知道您可以获取 FieldTypeFieldCount 来获取列的 type/size 但是有没有办法获取列的实际 ID阅读 reader?

我指的ID是这样的:

SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
    SomeObject obj = new SomeObject{
        SomeProperty = reader["ID"]
    };
}

我不想将它任意绑定到某些 var 但要获得实际的 column name 如果可能的话它会在结果集中返回?

您可以做类似的事情并收集 reader 中包含的所有名称:

var columns = Enumerable.Range(0, reader.FieldCount).Select(reader.GetName).ToList();