public void ReadHeader(SqlBytesReader reader) { char[] array = reader.ReadChars(11); int i; for (i = 0; i < array.Length && array[i] != 0; i++) { } _fieldName = new string(array, 0, i); _fieldType = reader.ReadChar(); reader.ReadUInt32(); _fieldLength = reader.ReadByte(); _decimalCount = reader.ReadByte(); reader.ReadUInt16(); reader.ReadByte(); reader.ReadUInt16(); reader.ReadByte(); reader.ReadUInt32(); reader.ReadUInt16(); reader.ReadByte(); reader.ReadByte(); if (_fieldType == 'C') { if (_fieldLength >= byte.MaxValue) { throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfFieldLength, _fieldType, _fieldLength)); } return; } if (_fieldType == 'N') { if (_fieldLength <= 20) { return; } throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfFieldLength, _fieldType, _fieldLength)); } if (_fieldType == 'L') { if (_fieldLength == 1) { return; } throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfFieldLength, _fieldType, _fieldLength)); } if (_fieldType == 'D') { if (_fieldLength == 8) { return; } throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfFieldLength, _fieldType, _fieldLength)); } if (_fieldType == 'F') { if (_fieldLength <= 20) { return; } throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfFieldLength, _fieldType, _fieldLength)); } throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture.NumberFormat, SR.UnsupportedDbfField, _fieldType)); }