예제 #1
0
        private ISqlValue ToNumber(SqlString value, SqlType destType)
        {
            var       locale = Locale ?? CultureInfo.InvariantCulture;
            SqlNumber number;

            if (!SqlNumber.TryParse(value.Value, locale, out number))
            {
                throw new InvalidCastException();
            }

            return(destType.NormalizeValue(number));
        }
예제 #2
0
        private ISqlValue ToDateTime(SqlString value, SqlType destType)
        {
            if (value == null)
            {
                throw new InvalidCastException();
            }

            SqlDateTime date;

            if (!SqlDateTime.TryParse(value.Value, out date))
            {
                throw new InvalidCastException();
            }

            return(destType.NormalizeValue(date));
        }
예제 #3
0
        public SqlObject(SqlType type, ISqlValue value)
        {
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }
            if (value == null)
            {
                value = SqlNull.Value;
            }

            if (!type.IsInstanceOf(value))
            {
                throw new ArgumentException($"The value given is not an instance of {type}", nameof(value));
            }

            Type  = type;
            Value = type.NormalizeValue(value);
        }
예제 #4
0
 private ISqlValue ToString(SqlString value, SqlType destType)
 {
     return(destType.NormalizeValue(value));
 }