internal object Value() { object obj2 = this._value; if (obj2 != null) { return(obj2); } switch (this.StatusValue()) { case DBStatus.S_OK: { short dbType = this.DbType; if (dbType > 0x40) { switch (dbType) { case 0x80: obj2 = this.Value_BYTES(); goto Label_0381; case 130: obj2 = this.Value_WSTR(); goto Label_0381; case 0x83: obj2 = this.Value_NUMERIC(); goto Label_0381; case 0x85: obj2 = this.Value_DBDATE(); goto Label_0381; case 0x86: obj2 = this.Value_DBTIME(); goto Label_0381; case 0x87: obj2 = this.Value_DBTIMESTAMP(); goto Label_0381; case 0x88: obj2 = this.Value_HCHAPTER(); goto Label_0381; case 0x8a: obj2 = this.Value_VARIANT(); goto Label_0381; case 0x48: obj2 = this.Value_GUID(); goto Label_0381; case 0x4080: obj2 = this.Value_ByRefBYTES(); goto Label_0381; case 0x4082: obj2 = this.Value_ByRefWSTR(); goto Label_0381; } break; } switch (dbType) { case 0: case 1: obj2 = DBNull.Value; goto Label_0381; case 2: obj2 = this.Value_I2(); goto Label_0381; case 3: obj2 = this.Value_I4(); goto Label_0381; case 4: obj2 = this.Value_R4(); goto Label_0381; case 5: obj2 = this.Value_R8(); goto Label_0381; case 6: obj2 = this.Value_CY(); goto Label_0381; case 7: obj2 = this.Value_DATE(); goto Label_0381; case 8: obj2 = this.Value_BSTR(); goto Label_0381; case 9: obj2 = this.Value_IDISPATCH(); goto Label_0381; case 10: obj2 = this.Value_ERROR(); goto Label_0381; case 11: obj2 = this.Value_BOOL(); goto Label_0381; case 12: obj2 = this.Value_VARIANT(); goto Label_0381; case 13: obj2 = this.Value_IUNKNOWN(); goto Label_0381; case 14: obj2 = this.Value_DECIMAL(); goto Label_0381; case 0x10: obj2 = this.Value_I1(); goto Label_0381; case 0x11: obj2 = this.Value_UI1(); goto Label_0381; case 0x12: obj2 = this.Value_UI2(); goto Label_0381; case 0x13: obj2 = this.Value_UI4(); goto Label_0381; case 20: obj2 = this.Value_I8(); goto Label_0381; case 0x15: obj2 = this.Value_UI8(); goto Label_0381; case 0x40: obj2 = this.Value_FILETIME(); goto Label_0381; } break; } case DBStatus.S_ISNULL: case DBStatus.S_DEFAULT: obj2 = DBNull.Value; goto Label_0381; case DBStatus.S_TRUNCATED: switch (this.DbType) { case 0x80: obj2 = this.Value_BYTES(); goto Label_0381; case 130: obj2 = this.Value_WSTR(); goto Label_0381; case 0x4080: obj2 = this.Value_ByRefBYTES(); goto Label_0381; case 0x4082: obj2 = this.Value_ByRefWSTR(); goto Label_0381; } throw ODB.GVtUnknown(this.DbType); default: throw this.CheckTypeValueStatusValue(); } throw ODB.GVtUnknown(this.DbType); Label_0381: this._value = obj2; return(obj2); }