/// <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()); }
/// <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); } }
/// <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); } } }
/// <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); }
/// <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); }
/// <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; } }
/// <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; } }
/// <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); } }
/// <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); }
/// <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)); }
/// <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)); }
/// <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); }