private IDbDataParameter SetDataParameterType(In parIn, bool isBulk, IDbDataParameter par)
        {
            var value = parIn.Value;

            if (isBulk)
            {
                var collParam = value as ICollection;
                if (collParam != null && collParam.Count != 0)
                {
                    var enumerator = collParam.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if ((value = enumerator.Current) != null)
                        {
                            break;
                        }
                    }
                }
            }
            if (value == null)
            {
                value = "";
            }
            par.DbType = GenericDbTypeMap.GetDbType(value.GetType());
            if (par.DbType == DbType.Binary)
            {
                ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeBlob, null);
            }
            return(par);
        }
Example #2
0
        private DbParameter SetDataParameterType(In parIn, bool isBulk, DbParameter par)
        {
            var value = parIn.Value;

            if (isBulk)
            {
                if (value is ICollection collParam && collParam.Count != 0)
                {
                    var enumerator = collParam.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if ((value = enumerator.Current) != null)
                        {
                            break;
                        }
                    }
                }
            }
            if (value == null)
            {
                value = "";
            }
            if (parIn.DbType.HasValue)
            {
                par.DbType = parIn.DbType.Value;
                return(par);
            }

            var type = GenericDbTypeMap.GetDbType(value.GetType());

            if (type == DbType.Boolean)
            {
                type      = DbType.Int32;
                par.Value = (bool)value ? 1 : 0;
            }
            else if (type == DbType.Date)
            {
                ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeDate, null);
            }
            else if (type == DbType.Binary)
            {
                ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeBlob, null);
            }
            par.DbType = type;
            return(par);
        }