コード例 #1
0
 /// <summary>
 /// 对象以字符串形式呈现
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="defValue"></param>
 /// <returns></returns>
 public static string ToString(object obj, string defValue)
 {
     if (obj == null)
     {
         return(defValue);
     }
     if (obj.GetType().IsArray)
     {
         string value = string.Empty;
         foreach (var item in (Array)obj)
         {
             value += "" + ToString(item, "");
         }
         return(value);
     }
     if (obj.GetType().GetInterface("IList") != null)
     {
         string value = string.Empty;
         foreach (var item in (IEnumerable)obj)
         {
             value += "" + ToString(item, "");
         }
         return(value);
     }
     if (obj.GetType().GetUnderlyingType() == typeof(DateTime))
     {
         string value = TryParse.StrToDate(obj).ToString(ConstExpression.DateTimeToStringFmt);
         return(value);
     }
     return(obj.ToString().Trim());
 }
コード例 #2
0
        /// <summary>
        /// 将对象转换成int类型,转换失败将返回defValue
        /// </summary>
        /// <param name="Expression"></param>
        /// <param name="defValue"></param>
        /// <returns></returns>
        public static int StrToInt(object Expression, int defValue)
        {
            if (Expression == null)
            {
                return(defValue);
            }
            string input = Expression.ToString().Trim();

            //是小数的情况,先转成decimal
            if (input.IndexOf(".") != -1)
            {
                input = TryParse.StrToDecimal(Expression).ToString("f0");
            }
            if (((input.Length <= 0) || (input.Length > 11)) || !Regex.IsMatch(input, @"^[-]?\d*[.]?\d*$"))
            {
                return(defValue);
            }

            if (((input.Length >= 10 && (input[0] != '1' && input[0] != '2')) || (input.Length >= 10 && input[0] == '-' && input[1] != '1' && input[1] != '2')))
            {
                return(defValue);
            }
            try
            {
                return(Convert.ToInt32(input));
            }
            catch
            {
                return(defValue);
            }
        }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 /// <param name="sb"></param>
 protected override void BuildParameterName(object value, ref StringBuilder sb)
 {
     if (this.NeedParams && this.Provider != null)
     {
         ParamInfo p = this.Provider.BuildParamInfo(false, this._ParamList, value, this._CurrentMemberInfo, ref this._paramIndex);
         if (p.DbType == System.Data.DbType.AnsiString && this._CurrentMemberType != typeof(string))
         {
             p.DbType = null;
         }
         this._ParamList.Add(p);
         this._paramIndex++;
         sb.Append(this.Provider.BuildSpecialName(p.Name));
     }
     else
     {
         if (value.GetType().IsStringType())
         {
             string text = TryParse.ToString(value);
             sb.Append("'");
             sb.Append(text);
             sb.Append("'");
         }
         else
         {
             string text = TryParse.ToString(value);
             sb.Append(text);
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 取两数相减结果
        /// </summary>
        /// <param name="val1"></param>
        /// <param name="val2"></param>
        /// <param name="defValue"></param>
        /// <returns></returns>
        public static decimal NumberMinus(object val1, object val2, decimal defValue)
        {
            decimal value = TryParse.StrToDecimal(val1) - TryParse.StrToDecimal(val2);

            if (value < 0m)
            {
                return(defValue);
            }
            return(value);
        }
コード例 #5
0
        /// <summary>
        /// 取两数相除结果,除数为0返回0
        /// </summary>
        /// <param name="val1"></param>
        /// <param name="val2"></param>
        /// <returns></returns>
        public static decimal NumberDivide(object val1, object val2)
        {
            if (TryParse.StrToDecimal(val2) == 0)
            {
                return(0);
            }
            decimal value = TryParse.StrToDecimal(val1) / TryParse.StrToDecimal(val2);

            return(value);
        }
コード例 #6
0
 /// <summary>
 /// yyyy-MM-dd -yyyyMMdd
 /// </summary>
 /// <param name="value">要转换的值</param>
 /// <param name="DateTimeFormat">转换格式</param>
 /// <returns></returns>
 public static DateTime StrToDateByChar(object value, string DateTimeFormat)
 {
     if (string.IsNullOrEmpty(TryParse.ToString(value)))
     {
         return(DateTime.Today);
     }
     try
     {
         return(DateTime.ParseExact(TryParse.ToString(value), DateTimeFormat, System.Globalization.CultureInfo.CurrentCulture));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #7
0
 /// <summary>
 /// 将固定格式(yyyy-MM-dd) 得到日期格式 yyyyMMdd
 /// </summary>
 /// <param name="value"></param>
 /// <returns></returns>
 public static string StrToDateByChar(object value)
 {
     if (string.IsNullOrEmpty(TryParse.ToString(value)))
     {
         return("");
     }
     try
     {
         return(DateTime.ParseExact(TryParse.ToString(value), "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyyMMdd"));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <param name="sb"></param>
        protected virtual void AdjustConstant(object value, ref StringBuilder sb)
        {
            Type type = value.GetType();

            if (type.IsStringType())
            {
                if (type.IsBooleanType())
                {
                    value = ((bool)value) ? 1 : 0;
                    this.BuildParameterName(value, ref sb);
                }
                else
                {
                    if (type.GetUnderlyingType() == typeof(DateTime))
                    {
                        this.BuildParameterName(value, ref sb);
                    }
                    else
                    {
                        string text = TryParse.ToString(value);
                        value = this.FilterText(text);
                        if (this.LikeLeftFmt)
                        {
                            value = string.Format(this.Provider.LikeLeftFmt, value);
                        }
                        if (this.LikeRightFmt)
                        {
                            value = string.Format(this.Provider.LikeRightFmt, value);
                        }
                        this.BuildParameterName(value, ref sb);
                    }
                }
            }
            else
            {
                this.BuildParameterName(value, ref sb);
            }
        }
コード例 #9
0
        /// <summary>
        /// 执行事务操作
        /// </summary>
        /// <param name="entity">DMSTransactionEntity 实现实体</param>
        /// <param name="resultValueList">执行查询时返回执行的行数</param>
        /// <param name="errMsg">返回错误信息</param>
        /// <returns></returns>
        public virtual bool Update(DMSTransactionScopeEntity entity, ref List <int> resultValueList, ref string errMsg)
        {
            resultValueList = new List <int>();
            Queue <TransactionScopeEntity> scopeEntityList = entity.GetEditTS();
            bool flag = true;

            if (scopeEntityList != null && scopeEntityList.Count > 0)
            {
                //string providerName = string.Empty;
                //IDMSDbProfiler dbProfiler = GetProfiler(out providerName);
                #region scopeEntityList
                DMSDbType dbType = entity.InternalDMSDbType;
                using (var conn = entity.InternalDbProvider.GetOpenConnection())
                {
                    IDbTransaction transaction = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);

                    int    resultValue = 0;
                    string ResultSql   = string.Empty;
                    try
                    {
                        foreach (TransactionScopeEntity item in scopeEntityList)
                        {
                            #region scopeEntityList
                            resultValue = 0;
                            ResultSql   = item.ResultSql;
                            if (item.ExcuteType == DMSExcuteType.INSERTIDENTITY)
                            {
                                resultValue = TryParse.StrToInt(DMSDbAccess.ExecuteScalar(conn, item.EntityName, item.ResultSql, item.DataParameter, transaction, 30));
                            }
                            else
                            {
                                resultValue = DMSDbAccess.Execute(conn, item.EntityName, item.ResultSql, item.DataParameter, transaction, 60);
                            }
                            #endregion

                            #region ResultFlag
                            if (item.ResultFlag && resultValue == 0)
                            {
                                errMsg = item.ResultFlag + "不能满足条件不能执行";
                                Log.Debug(ReflectionUtils.GetMethodBaseInfo(System.Reflection.MethodBase.GetCurrentMethod()), errMsg + "当前事务:" + item.ResultSql, null);
                                if (item.DataParameter != null)
                                {
                                    string strParam = string.Empty;
                                    foreach (var p in item.DataParameter.parameters)
                                    {
                                        strParam += string.Format("Name:{0} DbType:{1} Value:{2}{3}", p.Value.Name, p.Value.DbType, p.Value.Value, System.Environment.NewLine);
                                    }
                                    Log.Debug(ReflectionUtils.GetMethodBaseInfo(System.Reflection.MethodBase.GetCurrentMethod()), strParam, null);
                                }
                                flag = false;
                                resultValueList.Add(resultValue);
                                break;
                            }
                            #endregion

                            resultValueList.Add(resultValue);
                        }
                        if (flag)
                        {
                            transaction.Commit();
                        }
                        else
                        {
                            transaction.Rollback();
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Debug(ReflectionUtils.GetMethodBaseInfo(System.Reflection.MethodBase.GetCurrentMethod()), errMsg + "当前事务:" + ResultSql, ex);
                        resultValue = 0;
                        transaction.Rollback();
                        throw ex;
                    }
                    finally
                    {
                        entity.Clear();
                        conn.Close();
                    }
                }
                #endregion
            }
            return(flag);
        }
コード例 #10
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dms"></param>
        /// <param name="columns"></param>
        /// <returns></returns>
        public static int InsertIdentity <T>(this DMS <T> dms, System.Linq.Expressions.Expression <Func <T, T> > columns) where T : class
        {
            var result = DMSInsert(dms, DMSExcuteType.INSERTIDENTITY, columns).ExecuteScalar();

            return(TryParse.StrToInt(result));
        }
コード例 #11
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dms"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static int InsertIdentity <T>(this DMS <T> dms, T entity) where T : class
        {
            var result = DMSInsert(dms, DMSExcuteType.INSERTIDENTITY, entity).ExecuteScalar();

            return(TryParse.StrToInt(result));
        }
コード例 #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <param name="sb"></param>
        protected virtual void BuildParameterName(object value, ref StringBuilder sb)
        {
            string text = TryParse.ToString(value);

            sb.Append(text);
        }