示例#1
0
        /// <summary>
        /// Sets a parameter value.
        /// </summary>
        /// <param name="command">The command with the parameter.</param>
        /// <param name="parameterName">The parameter name.</param>
        /// <param name="value">The parameter value.</param>
        public override void SetParameterValue(DbCommand command, string parameterName, object value)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            object convertedValue = value;

            ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText);

            if (registry != null)
            {
                if (registry.HasRegisteredParameterType(parameterName))
                {
                    DbType dbType = registry.GetRegisteredParameterType(parameterName);

                    if (DbType.Guid == dbType)
                    {
                        convertedValue = ConvertGuidToByteArray(value);
                    }
                }
            }

            base.SetParameterValue(command, parameterName, convertedValue);
        }
示例#2
0
        /// <summary>
        /// Gets a parameter value.
        /// </summary>
        /// <param name="command">The command that contains the parameter.</param>
        /// <param name="parameterName">The name of the parameter.</param>
        /// <returns>The value of the parameter.</returns>
        public override object GetParameterValue(DbCommand command, string parameterName)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }

            object convertedValue = base.GetParameterValue(command, parameterName);

            ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText);

            if (registry != null)
            {
                if (registry.HasRegisteredParameterType(parameterName))
                {
                    DbType dbType = registry.GetRegisteredParameterType(parameterName);

                    if (DbType.Guid == dbType)
                    {
                        convertedValue = ConvertByteArrayToGuid(convertedValue);
                    }
                    else if (DbType.Boolean == dbType)
                    {
                        convertedValue = Convert.ToBoolean(convertedValue, CultureInfo.InvariantCulture);
                    }
                }
            }

            return(convertedValue);
        }
示例#3
0
        private void RegisterParameterType(DbCommand command, string parameterName, DbType dbType)
        {
            ParameterTypeRegistry parameterTypeRegistry = this.GetParameterTypeRegistry(command.CommandText);

            if (parameterTypeRegistry == null)
            {
                parameterTypeRegistry = new ParameterTypeRegistry(command.CommandText);
                this.registeredParameterTypes.Add(command.CommandText, parameterTypeRegistry);
            }
            parameterTypeRegistry.RegisterParameterType(parameterName, dbType);
        }
示例#4
0
        private void RegisterParameterType(DbCommand command, string parameterName, DbType dbType)
        {
            ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText);

            if (registry == null)
            {
                registry = new ParameterTypeRegistry(command.CommandText);
                registeredParameterTypes.Add(command.CommandText, registry);
            }

            registry.RegisterParameterType(parameterName, dbType);
        }
示例#5
0
        public override void SetParameterValue(DbCommand command, string parameterName, object value)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }
            object obj = value;
            ParameterTypeRegistry parameterTypeRegistry = this.GetParameterTypeRegistry(command.CommandText);

            if (parameterTypeRegistry != null && parameterTypeRegistry.HasRegisteredParameterType(parameterName) && DbType.Guid == parameterTypeRegistry.GetRegisteredParameterType(parameterName))
            {
                obj = OracleDatabase.ConvertGuidToByteArray(value);
            }
            base.SetParameterValue(command, parameterName, obj);
        }
示例#6
0
        public override object GetParameterValue(DbCommand command, string parameterName)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }
            object obj = base.GetParameterValue(command, parameterName);
            ParameterTypeRegistry parameterTypeRegistry = this.GetParameterTypeRegistry(command.CommandText);

            if (parameterTypeRegistry != null && parameterTypeRegistry.HasRegisteredParameterType(parameterName))
            {
                DbType registeredParameterType = parameterTypeRegistry.GetRegisteredParameterType(parameterName);
                if (DbType.Guid == registeredParameterType)
                {
                    obj = OracleDatabase.ConvertByteArrayToGuid(obj);
                }
                else if (DbType.Boolean == registeredParameterType)
                {
                    obj = (object)Convert.ToBoolean(obj, (IFormatProvider)CultureInfo.InvariantCulture);
                }
            }
            return(obj);
        }
示例#7
0
 private void RegisterParameterType(DbCommand command, string parameterName, DbType dbType)
 {
     ParameterTypeRegistry parameterTypeRegistry = this.GetParameterTypeRegistry(command.CommandText);
     if (parameterTypeRegistry == null)
     {
         parameterTypeRegistry = new ParameterTypeRegistry(command.CommandText);
         this.registeredParameterTypes.Add(command.CommandText, parameterTypeRegistry);
     }
     parameterTypeRegistry.RegisterParameterType(parameterName, dbType);
 }
示例#8
0
        private void RegisterParameterType(DbCommand command, string parameterName, DbType dbType)
        {
            ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText);
            if (registry == null)
            {
                registry = new ParameterTypeRegistry(command.CommandText);
                registeredParameterTypes.Add(command.CommandText, registry);
            }

            registry.RegisterParameterType(parameterName, dbType);
        }