/// <summary>
        /// 获取指定对应字段的值。
        /// </summary>
        /// <param name="index">从0开始的索引,小于0或超出有效值时,则为空。</param>
        /// <returns>返回索引顺序对应字段的值,若字段不存在,则为空。</returns>
        public override object GetValue(int index)
        {
            if (index < 0 || index > FieldCount - 1)
            {
                return(null);
            }
            object value = DataReader?.GetValue(index);

            if (IsNullValue(value))
            {
                return(null);
            }

            string dataTypeName = GetDataTypeName(index);

            if (string.Equals(dataTypeName, "char(1)", StringComparison.OrdinalIgnoreCase) ||
                string.Equals(dataTypeName, "nchar(1)", StringComparison.OrdinalIgnoreCase))
            {
                value = _dataReader.GetChar(index);
            }
            else if (GetType(index) == typeof(byte[]) && string.Equals(dataTypeName, "timestamp", System.StringComparison.OrdinalIgnoreCase))
            {
                byte[] buffer = (byte[])value;
                System.Array.Reverse(buffer);
            }
            return(value);
        }
Example #2
0
 public char GetChar(int i)
 {
     return(_innerReader.GetChar(i));
 }