如果SqlDataReader中不存在,请检查列

时间:2017-06-12 05:40:29

标签: c# sql-server

我必须检查SqlDataReader中不存在的列。我尝试使用reader.IsDBNullreader.GetOrdinal,但仍然收到错误“索引超出范围”。

1 个答案:

答案 0 :(得分:0)

使用此方法

  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;
            }
        }

试试这个

public static bool HasColumn(DbDataReader Reader, string ColumnName) { 
    foreach (DataRow row in Reader.GetSchemaTable().Rows) { 
        if (row["ColumnName"].ToString() == ColumnName) 
            return true; 
    } //Still here? Column not found. 
    return false; 
}