System.Data.OracleClient.OracleConvert.OracleTypeToValueType C# (CSharp) Method

OracleTypeToValueType() static private method

static private OracleTypeToValueType ( OracleType oleDbType ) : Type
oleDbType OracleType
return System.Type
		internal static Type OracleTypeToValueType(OracleType oleDbType) {
			switch (oleDbType) {
//				case OracleType.BigInt : return DbTypes.TypeOfInt64;// typeof(long);
//				case OracleType.Binary : return DbTypes.TypeOfByteArray;
//				case OracleType.Boolean : return DbTypes.TypeOfBoolean;
//				case OracleType.BSTR : return DbTypes.TypeOfString;
				case OracleType.BFile : return TypeOfByteArray;
				case OracleType.Blob : return TypeOfByteArray;
				case OracleType.Byte : return TypeOfByte;
				case OracleType.Char : return TypeOfString;
				case OracleType.Clob : return TypeOfCharArray;
				case OracleType.Cursor : return TypeOfIDataReader;
				case OracleType.DateTime : return TypeOfDateTime;
//				case OracleType.Currency : return TypeOfDecimal;
//				case OracleType.Date : return TypeOfDateTime;
//				case OracleType.DBDate : return TypeOfDateTime;
//				case OracleType.DBTime : return TypeOfTimespan;
//				case OracleType.DBTimeStamp : return TypeOfDateTime;
//				case OracleType.Decimal : return TypeOfDecimal;
				case OracleType.Double : return TypeOfDouble;
				case OracleType.Float : return TypeOfFloat;
				case OracleType.Int16 : return TypeOfInt16;
				case OracleType.Int32 : return TypeOfInt32;
				case OracleType.IntervalDayToSecond : return TypeOfTimespan;
				case OracleType.IntervalYearToMonth : return TypeOfInt32;
				case OracleType.LongRaw : return TypeOfByteArray;
//				case OracleType.Empty : return null; //typeof(DBNull);
//				case OracleType.Error : return typeof(Exception);
//				case OracleType.Filetime : return TypeOfDateTime;
//				case OracleType.Guid : return TypeOfGuid;
//				case OracleType.IDispatch : return TypeOfObject;
//				case OracleType.Integer : return TypeOfInt32;
//				case OracleType.IUnknown : return TypeOfObject;
//				case OracleType.LongVarBinary : return TypeOfByteArray;
				case OracleType.LongVarChar : return TypeOfString;
				case OracleType.NChar : return TypeOfString;
				case OracleType.NClob : return TypeOfString;
				case OracleType.Number : return TypeOfDecimal;
				case OracleType.NVarChar : return TypeOfString;
				case OracleType.Raw : return TypeOfByteArray;

				case OracleType.RowId : return TypeOfString;
				case OracleType.SByte : return TypeOfSByte;
				case OracleType.Timestamp : return TypeOfTimespan;
				case OracleType.TimestampLocal : return TypeOfTimespan;
				case OracleType.TimestampWithTZ : return TypeOfTimespan;
				case OracleType.UInt16 : return TypeOfUInt16;

				case OracleType.UInt32 : return TypeOfUInt32;
				case OracleType.VarChar : return TypeOfString;
//				case OracleType.LongVarWChar : return TypeOfString;
//				case OracleType.Numeric : return TypeOfDecimal;
//				case OracleType.PropVariant : return TypeOfObject;
//				case OracleType.Single : return TypeOfFloat;
//				case OracleType.SmallInt : return TypeOfInt16;
//				case OracleType.TinyInt : return TypeOfSByte;
//				case OracleType.UnsignedBigInt : return TypeOfUInt64;
//				case OracleType.UnsignedInt : return TypeOfUInt32;
//				case OracleType.UnsignedSmallInt : return TypeOfUInt16;
//				case OracleType.UnsignedTinyInt : return TypeOfByte;
//				case OracleType.VarBinary : return TypeOfByteArray;
//				case OracleType.VarChar : return TypeOfString;
//				case OracleType.Variant : return TypeOfObject;
//				case OracleType.VarNumeric : return TypeOfDecimal;
//				case OracleType.VarWChar : return TypeOfString;
//				case OracleType.WChar : return TypeOfString;
				default : return TypeOfObject;
			}
		}

Usage Example

Example #1
0
        protected sealed override object ConvertValue(object value)
        {
            // can not convert null or DbNull to other types
            if (value == null || value == DBNull.Value)
            {
                return(value);
            }

            // TBD : some other way to do this?
//			if (OracleType == OracleType.Binary) {
//				return value;
//			}
            // .NET throws an exception to the user.
            object convertedValue = value;

            // note : if we set user parameter jdbc type inside prepare interbal, the db type is not set
            if (value is IConvertible && (IsDbTypeSet || IsJdbcTypeSet))
            {
                OracleType oleDbType = (IsDbTypeSet) ? OracleType : OracleConvert.JdbcTypeToOracleType((int)JdbcType);
                Type       to        = OracleConvert.OracleTypeToValueType(oleDbType);
                if (!(value is DateTime && to == OracleConvert.TypeOfTimespan))                 //anyway will go by jdbc type
                {
                    convertedValue = Convert.ChangeType(value, to);
                }
            }
            return(convertedValue);
        }