private static SqlCommand ReadUpdateSql(string table, Action <List <string> > whereColunmAction, Action <List <string> > updateColumnAction) { SqlCommand cmd = new SqlCommand(); List <string> whereColunms = new List <string>(); whereColunmAction(whereColunms); List <string> updateColumns = new List <string>(); updateColumnAction(updateColumns); WhereSqlClauseBuilder where = new WhereSqlClauseBuilder(); whereColunms.ForEach(w => { var p = AddParameter(cmd, w); where.AppendItem(w, p.ParameterName, "=", true); }); UpdateSqlClauseBuilder update = new UpdateSqlClauseBuilder(); updateColumns.ForEach(u => { var p = AddParameter(cmd, u); update.AppendItem(u, p.ParameterName, "=", true); } ); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", table, update.ToSqlString(TSqlBuilder.Instance), where.ToSqlString(TSqlBuilder.Instance)); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; cmd.UpdatedRowSource = UpdateRowSource.None; return(cmd); }
private static string PrepareUpdateData(SCLock lockData, bool forceOverride) { ORMappingItemCollection mappingInfo = GetMappingInfo(); UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(lockData, mappingInfo); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(lockData, mappingInfo); if (forceOverride == false) { wBuilder.AppendItem("LockTime", "DATEADD(SECOND, -EffectiveTime, GETUTCDATE())", "<", true); } StringBuilder sql = new StringBuilder(); sql.AppendFormat("UPDATE {0} SET {1} WHERE {2}", mappingInfo.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); sql.Append(TSqlBuilder.Instance.DBStatementSeperator); sql.Append("SELECT @@ROWCOUNT"); sql.Append(TSqlBuilder.Instance.DBStatementSeperator); sql.AppendFormat("SELECT * FROM {0} WHERE LockID = {1}", GetMappingInfo().TableName, TSqlBuilder.Instance.CheckUnicodeQuotationMark(lockData.LockID)); return(sql.ToString()); }
public void UpdateUserView(AMSUserView userView) { userView.NullCheck("userView"); Dictionary<string, object> context = new Dictionary<string, object>(); ORMappingItemCollection mappingInfo = this.GetMappingInfo(context); StringBuilder strB = new StringBuilder(); UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(userView, mappingInfo); updateBuilder.AppendItem("LastAccessTime", "GETUTCDATE()", "=", true); strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}", mappingInfo.TableName, updateBuilder.ToSqlString(TSqlBuilder.Instance), ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(userView, mappingInfo).ToSqlString(TSqlBuilder.Instance)); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("IF @@ROWCOUNT = 0\n"); strB.Append("BEGIN\n"); strB.Append(this.GetInsertSql(userView, mappingInfo, context) + "\n"); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); string eventTableName = ORMapping.GetMappingInfo(typeof(AMSEvent)).TableName; strB.AppendFormat("UPDATE {0} SET Views = Views + 1 WHERE ID = {1}\n", eventTableName, TSqlBuilder.Instance.CheckUnicodeQuotationMark(userView.EventID)); strB.Append("END\n"); DbHelper.RunSqlWithTransaction(strB.ToString(), this.GetConnectionName()); }
private void ForceStopEvents(IEnumerable <AMSEvent> events) { StringBuilder strB = new StringBuilder(); foreach (AMSEvent eventData in events) { if (strB.Length > 0) { strB.Append(TSqlBuilder.Instance.DBStatementSeperator); } WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(eventData); UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder(); uBuilder.AppendItem("State", AMSEventState.Stopping.ToString()); uBuilder.AppendItem("EndTime", "GETUTCDATE()", "=", true); strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}", this.GetTableName(), uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); } if (strB.Length > 0) { DbHelper.RunSqlWithTransaction(strB.ToString(), this.GetConnectionName()); } }
public override void UpdateOperation() { DataView users_modify = new DataView(this.Context.OriginalData.Tables["USERS_INFO_EXTEND"], string.Empty, "ID", DataViewRowState.ModifiedCurrent); Database db = DatabaseFactory.Create(this.Context.InitialParams.UserInfoExtend); foreach (DataRowView drs in users_modify) { UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder(); uBuilder.AppendItem("MOBILE", drs["MOBILE"].ToString()); uBuilder.AppendItem("OFFICE_TEL", drs["OFFICE_TEL"].ToString()); uBuilder.AppendItem("IM_ADDRESS", drs["IM_ADDRESS"].ToString()); WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder(); wBuilder.AppendItem("ID", drs["ID"].ToString()); string updatesql = string.Format("UPDATE USERS_INFO_EXTEND SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); try { int count = db.ExecuteNonQuery(CommandType.Text, updatesql); if (count == 1) { this.UpdateCount++; //this.Context.InitialParams.Log.Write(string.Format("USERS_INFO_EXTEND表ID是{0}的记录更新成功", //drs["ID"].ToString())); } } catch (Exception ex) { this.Context.InitialParams.Log.Write(string.Format("用户扩展表 ID 是{0}的执行更新时出错,错误是{1}", drs["ID"].ToString(), ex.Message)); } } }
private static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilderByUserTask(UserTask task, UserTaskFieldDefine fields) { string[] ignoredProperties = GetIgnorPropertiesByEnum((int)fields, EnumItemDescriptionAttribute.GetDescriptionList(typeof(UserTaskFieldDefine))); UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder <UserTask>(task, ignoredProperties); return(uBuilder.AppendTenantCode()); }
protected virtual UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(T obj, ORMappingItemCollection mapping) { //UpdateSqlClauseBuilder updateBuilder = new UpdateSqlClauseBuilder(); UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(obj, mapping); //updateBuilder.AppendItem(GetPropertyFieldName("VersionEndTime", mapping), "@currentTime", "=", true); return(updateBuilder); }
/// <summary> /// 生成更新SQL /// </summary> /// <param name="obj"></param> /// <returns></returns> public virtual string PrepareUpdateSql(DEEntityInstanceBase obj) { WhereSqlClauseBuilder primaryKeyBuilder = PrepareWhereSqlBuilder(obj); UpdateSqlClauseBuilder updateBuilder = PrepareUpdateSqlBuilder(obj); return(string.Format("UPDATE {0} SET {1} WHERE {2}", GetTableName(obj), updateBuilder.ToSqlString(TSqlBuilder.Instance), primaryKeyBuilder.ToSqlString(TSqlBuilder.Instance))); }
protected virtual string PrepareUpdateSql(T obj, ORMappingItemCollection mapping) { WhereSqlClauseBuilder primaryKeyBuilder = PrepareWhereSqlBuilder(obj, mapping); UpdateSqlClauseBuilder updateBuilder = PrepareUpdateSqlBuilder(obj, mapping); return(string.Format("UPDATE {0} SET {1} WHERE {2}", GetTableName(obj, mapping), updateBuilder.ToSqlString(TSqlBuilder.Instance), primaryKeyBuilder.ToSqlString(TSqlBuilder.Instance))); }
/// <summary> /// 批量更新某些字段的值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="action"></param> /// <param name="where"></param> /// <returns></returns> public static string BathUpdate <T>(IConnectiveSqlClause where, Action <UpdateSqlClauseBuilder> action) { var updateBuilder = new UpdateSqlClauseBuilder(); action(updateBuilder); return(String.Format("UPDATE {0} SET {1} WHERE {2}", ORMapping.GetMappingInfo <T>().TableName, updateBuilder.ToSqlString(TSqlBuilder.Instance), where.ToSqlString(TSqlBuilder.Instance))); }
/// <summary> /// 批量更新某些字段的值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="graph"></param> /// <param name="where"></param> /// <param name="requriedpropertites"></param> /// <returns></returns> public static string BathUpdate <T>(T graph, string where, params string[] requriedpropertites) { var mapping = ORMapping.GetMappingInfo <T>(); UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(graph, mapping, GetExceptProperties <T>(requriedpropertites)); return(String.Format("UPDATE {0} SET {1} WHERE {2}", mapping.TableName, updateBuilder.ToSqlString(TSqlBuilder.Instance), @where)); }
private static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilder <T>(T graph, DataModel mapping, string[] ignorProperties) { ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph"); ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping"); UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); FillSqlClauseBuilder(builder, graph, mapping, ClauseBindingFlags.Update, new DoSqlClauseBuilder <T>(DoInsertUpdateSqlClauseBuilder <T>), ignorProperties); return(builder); }
/// <summary> /// 修改过期时间。主要用于测试 /// </summary> /// <param name="authenticationID"></param> /// <param name="expireTime"></param> public void UpdateExpireTime(string authenticationID, DateTime expireTime) { UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); builder.AppendItem("EXPIRE_TIME", expireTime); string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}", this.GetMappingInfo().TableName, builder.ToSqlString(TSqlBuilder.Instance), TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID)); ExecuteNonQuery(sql); }
/// <summary> /// 创建更新SQL语句生成器 /// </summary> /// <param name="obj"></param> /// <returns></returns> public virtual UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(DEEntityInstanceBase obj) { UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); foreach (var filed in obj.Fields) { if (filed.Definition.IsInSnapshot) { builder.AppendItem(filed.Definition.Name, filed.GetRealValue()); } } return(builder); }
protected override string GetUpdateSql(WeChatFriend data, ORMappingItemCollection mappings, Dictionary <string, object> context) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "OpenID"); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); return(sql); }
private static int eventContainer_UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary <object, object> context) { ExceptionHelper.FalseThrow <ArgumentNullException>(task != null, "task"); WhereSqlClauseBuilder wBuilder = GetWhereSqlClauseBuilderByUserTask(task, idType); UpdateSqlClauseBuilder uBuilder = GetUpdateSqlClauseBuilderByUserTask(task, fields); string sql = string.Format("UPDATE WF.USER_TASK SET {0} WHERE {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); return(DbHelper.RunSql(sql, GetConnectionName())); }
private static string GetUpdateSql <T>(T graph, DataModel mapping, ISqlBuilder builder, string[] ignorProperties) { ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph"); ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping"); ExceptionHelper.FalseThrow <ArgumentNullException>(builder != null, "builder"); UpdateSqlClauseBuilder updateBuilder = GetUpdateSqlClauseBuilder(graph, mapping, ignorProperties); WhereSqlClauseBuilder whereBuilder = GetWhereSqlClauseBuilderByPrimaryKey(graph, mapping); return(string.Format("UPDATE {0} SET {1} WHERE {2}", mapping.TableName, updateBuilder.ToSqlString(builder), whereBuilder.ToSqlString(builder))); }
/// <summary> /// 更新某一状态下所有时间的完成时间 /// </summary> /// <param name="endTime"></param> /// <param name="state"></param> /// <returns></returns> public int UpdateEndTime(DateTime endTime, AMSEventState state) { SqlClauseBuilderBase wBuilder = new WhereSqlClauseBuilder().AppendItem("State", state.ToString()); SqlClauseBuilderBase uBuilder = new UpdateSqlClauseBuilder().AppendItem("EndTime", endTime); Dictionary <string, object> context = new Dictionary <string, object>(); ORMappingItemCollection mappings = this.GetMappingInfo(context); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); return(DbHelper.RunSql(sql, this.GetConnectionName())); }
/// <summary> /// 根据对象拼Update语句时的方法 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="graph">对象</param> /// <param name="mapping">映射关系</param> /// <param name="ignoreProperties">忽略的字段</param> /// <returns>UpdateSqlClauseBuilder对象,供拼Update语句使用</returns> /// <remarks> /// 根据传入的对象和对象映射时需要忽略的字段,返回UpdateSqlClauseBuilder对象,以供后续拼Update语句的字段名称和Values部分 /// <code source="..\Framework\TestProjects\DeluxeWorks.Library.Data.SqlBuilder.Test\ORMappingTest.cs" region="GetUpdateSqlClauseBuilder" lang="cs" title="拼Update语句"/> /// <see cref="MCS.Library.Data.Builder.UpdateSqlClauseBuilder"/> /// </remarks> public static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilder <T>(T graph, ORMappingItemCollection mapping, params string[] ignoreProperties) { ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph"); ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping"); UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); FillSqlClauseBuilder(builder, graph, mapping, ClauseBindingFlags.Update, new DoSqlClauseBuilder <T>(DoInsertUpdateSqlClauseBuilder <T>), ignoreProperties); //builder.AppendTenantCode(typeof(T)); return(builder); }
protected override string GetUpdateSql(WfProcessDescriptorDimension data, ORMappingItemCollection mappings, Dictionary <string, object> context) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings); uBuilder.AppendTenantCode(); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings); wBuilder.AppendTenantCode(); return(string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance))); }
protected override string GetUpdateSql(TxProcess data, ORMappingItemCollection mappings, Dictionary <string, object> context, string[] ignoreProperties) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, ignoreProperties); string serilizedProcess = GetSerilizedProcess(data); uBuilder.AppendItem("DATA", serilizedProcess); context["SerilizedProcess"] = serilizedProcess; WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data); return(string.Format("UPDATE {0} SET {1} WHERE {2}", this.GetTableName(), uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance))); }
protected override string GetUpdateSql(T data, ORMappingItemCollection mappings, Dictionary <string, object> context) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "UpdateTime"); uBuilder.AppendItem("UpdateTime", "GETDATE()", "=", true); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); return(sql); }
protected override string GetUpdateSql(SysTaskProcess data, ORMappingItemCollection mappings, Dictionary <string, object> context) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "UpdateTag"); uBuilder.AppendItem("UPDATE_TAG", "UPDATE_TAG + 1", "=", true); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings); wBuilder.AppendItem("UPDATE_TAG", data.UpdateTag); return(string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance))); }
/// <summary> /// 更新频道的状态 /// </summary> /// <param name="channelID"></param> /// <param name="state"></param> /// <returns></returns> public int UpdateState(string channelID, AMSChannelState state) { channelID.CheckStringIsNullOrEmpty("channelID"); SqlClauseBuilderBase wBuilder = new WhereSqlClauseBuilder().AppendItem("ID", channelID); Dictionary <string, object> context = new Dictionary <string, object>(); ORMappingItemCollection mappings = this.GetMappingInfo(context); SqlClauseBuilderBase uBuilder = new UpdateSqlClauseBuilder().AppendItem("State", state.ToString()); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); return(DbHelper.RunSql(sql, this.GetConnectionName())); }
/// <summary> /// 得到更新当前快照的SQL /// </summary> /// <param name="srcTableName"></param> /// <param name="targetTableName"></param> /// <param name="builder"></param> /// <returns></returns> private string GetInternalUpdateCurrentSnapshotSql(string srcTableName, string targetTableName, IConnectiveSqlClause builder) { builder.NullCheck("builder"); StringBuilder strB = new StringBuilder(); if (builder.IsEmpty == false) { IConnectiveSqlClause timePointBuilder = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(DateTime.MinValue); ConnectiveSqlClauseCollection connectiveBuilder = new ConnectiveSqlClauseCollection(builder, timePointBuilder); string sql = string.Format("SELECT * FROM {0} WHERE Status = {1} AND {2}", srcTableName, (int)SchemaObjectStatus.Normal, connectiveBuilder.ToSqlString(TSqlBuilder.Instance)); DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0]; if (table.Rows.Count > 0) { UpdateSqlClauseBuilder updateBuilder = new UpdateSqlClauseBuilder(); DataRowToBuilder(table.Rows[0], updateBuilder, "RowUniqueID"); InsertSqlClauseBuilder insertBuilder = new InsertSqlClauseBuilder(); DataRowToBuilder(table.Rows[0], insertBuilder); strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}", targetTableName, updateBuilder.ToSqlString(TSqlBuilder.Instance), builder.ToSqlString(TSqlBuilder.Instance)); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.Append("IF @@ROWCOUNT = 0"); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("INSERT INTO {0} {1}", targetTableName, insertBuilder.ToSqlString(TSqlBuilder.Instance)); } else { strB.AppendFormat("DELETE {0} WHERE {1}", targetTableName, builder.ToSqlString(TSqlBuilder.Instance)); } } return(strB.ToString()); }
protected override string GetUpdateSql(WfDelegation data, ORMappingItemCollection mappings, Dictionary <string, object> context, string[] ignoreProperties) { UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "ApplicationName", "ProgramName"); uBuilder.AppendItem("APPLICATION_NAME", data.ApplicationName.IsNotEmpty() ? data.ApplicationName : string.Empty); uBuilder.AppendItem("PROGRAM_NAME", data.ProgramName.IsNotEmpty() ? data.ProgramName : string.Empty); WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings, "ApplicationName", "ProgramName"); wBuilder.AppendItem("APPLICATION_NAME", data.ApplicationName.IsNotEmpty() ? data.ApplicationName : string.Empty); wBuilder.AppendItem("PROGRAM_NAME", data.ProgramName.IsNotEmpty() ? data.ProgramName : string.Empty); return(string.Format("UPDATE {0} SET {1} WHERE {2}", mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance))); }
public override void UpdateOperation() { DataView ouusers = new DataView(this.Context.OriginalData.Tables["OU_USERS"], string.Empty, "PARENT_GUID,USER_GUID", DataViewRowState.ModifiedCurrent); Database db = DatabaseFactory.Create(this.Context.InitialParams.AccreditAdminConnectionName); foreach (DataRowView drs in ouusers) { UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder(); uBuilder.AppendItem("DISPLAY_NAME", drs["DISPLAY_NAME"].ToString()); uBuilder.AppendItem("OBJ_NAME", drs["OBJ_NAME"].ToString()); uBuilder.AppendItem("ALL_PATH_NAME", drs["ALL_PATH_NAME"].ToString()); uBuilder.AppendItem("INNER_SORT", drs["INNER_SORT"].ToString()); uBuilder.AppendItem("GLOBAL_SORT", drs["GLOBAL_SORT"].ToString()); uBuilder.AppendItem("ORIGINAL_SORT", drs["ORIGINAL_SORT"].ToString()); uBuilder.AppendItem("SEARCH_NAME", drs["SEARCH_NAME"].ToString()); uBuilder.AppendItem("MODIFY_TIME", TSqlBuilder.Instance.DBCurrentTimeFunction, "=", true); uBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216 WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder(); wBuilder.AppendItem("PARENT_GUID", drs["PARENT_GUID"].ToString()); wBuilder.AppendItem("USER_GUID", drs["USER_GUID"].ToString()); //wBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216 string updatesql = string.Format("UPDATE OU_USERS SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); try { int count = db.ExecuteNonQuery(CommandType.Text, updatesql); if (count == 1) { this.UpdateCount++; //this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0},USER_GUID是{1}的记录更新成功,ALL_PATH_NAME是'{2}'", //drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), drs["ALL_PATH_NAME"]).ToString()); } } catch (Exception ex) { this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0}USER_GUID 是{1}的记录执行更新时出错,错误是{2}", drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), ex.Message)); } } }
/// <summary> /// 根据对象拼Insert语句 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="graph">对象</param> /// <param name="mapping">映射关系</param> /// <param name="builder">生成Sql语句类型的Builder如TSqlBuilder或PlSqlBuilder</param> /// <param name="ignoreProperties">忽略的字段</param> /// <returns>根据传入的对象和对象映射时需要忽略的字段以及类定义上的表名,生成完整的Insert语句</returns> public static string GetUpdateSql <T>(T graph, ORMappingItemCollection mapping, ISqlBuilder builder, params string[] ignoreProperties) { ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph"); ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping"); ExceptionHelper.FalseThrow <ArgumentNullException>(builder != null, "builder"); using (ORMappingContext context = ORMappingContext.GetContext()) { UpdateSqlClauseBuilder updateBuilder = GetUpdateSqlClauseBuilder(graph, mapping, ignoreProperties); WhereSqlClauseBuilder whereBuilder = GetWhereSqlClauseBuilderByPrimaryKey(graph, mapping); return(string.Format("UPDATE {0} SET {1} WHERE {2}", mapping.TableName, updateBuilder.ToSqlString(builder), whereBuilder.ToSqlString(builder))); } }
/// <summary> /// 重发一个新的Code。 /// </summary> /// <param name="authenticationID"></param> /// <param name="codeLength"></param> /// <returns>重新生成的Code</returns> public string ReissueCode(string authenticationID, int codeLength) { string result = AuthenticationCode.GenerateCode(codeLength); UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); builder.AppendItem("AUTHENTICATION_CODE", result); builder.AppendItem("EXPIRE_TIME", string.Format("DATEADD(second, {0}, GETDATE())", 1800), "=", true); string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}", this.GetMappingInfo().TableName, builder.ToSqlString(TSqlBuilder.Instance), TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID)); ExecuteNonQuery(sql); return(result); }
protected override UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(NoVersionedEntityInstanceObjectBase obj, ORMappingItemCollection mapping) { NoVersionedEntityInstanceObjectBase schemaObj = (NoVersionedEntityInstanceObjectBase)obj; if (OguBase.IsNullOrEmpty(schemaObj.Creator)) { if (DeluxePrincipal.IsAuthenticated) { schemaObj.Creator = DeluxeIdentity.CurrentUser; } } UpdateSqlClauseBuilder builder = base.PrepareUpdateSqlBuilder(obj, mapping); builder.AppendItem("Data", obj.ToString()); return(builder); }
/// <summary> /// 重发一个新的Code。 /// </summary> /// <param name="authenticationID"></param> /// <param name="codeLength"></param> /// <returns>重新生成的Code</returns> public string ReissueCode(string authenticationID, int codeLength) { string result = AuthenticationCode.GenerateCode(codeLength); UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder(); builder.AppendItem("AUTHENTICATION_CODE", result); builder.AppendItem("EXPIRE_TIME", string.Format("DATEADD(second, {0}, GETDATE())", 1800), "=", true); string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}", this.GetMappingInfo().TableName, builder.ToSqlString(TSqlBuilder.Instance), TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID)); ExecuteNonQuery(sql); return result; }
public override void UpdateOperation() { //更新用户表 DataView users = new DataView(this.Context.OriginalData.Tables["USERS"], string.Empty, "GUID", DataViewRowState.ModifiedCurrent); Database db = DatabaseFactory.Create(this.Context.InitialParams.AccreditAdminConnectionName); foreach (DataRowView drs in users) { UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder(); uBuilder.AppendItem("FIRST_NAME", drs["FIRST_NAME"].ToString()); uBuilder.AppendItem("LAST_NAME", drs["LAST_NAME"].ToString()); uBuilder.AppendItem("LOGON_NAME", drs["LOGON_NAME"].ToString()); uBuilder.AppendItem("USER_PWD", drs["USER_PWD"].ToString()); uBuilder.AppendItem("PINYIN", drs["PINYIN"].ToString()); uBuilder.AppendItem("E_MAIL", drs["E_MAIL"].ToString()); uBuilder.AppendItem("MODIFY_TIME", TSqlBuilder.Instance.DBCurrentTimeFunction, "=", true); WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder(); wBuilder.AppendItem("GUID", drs["GUID"].ToString()); string updatesql = string.Format("UPDATE USERS SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)); try { int count = db.ExecuteNonQuery(CommandType.Text, updatesql); if (count == 1) { this.UpdateCount++; //this.Context.InitialParams.Log.Write(string.Format("USERS表GUID是{0}的记录更新成功", // drs["GUID"].ToString())); } } catch (Exception ex) { this.Context.InitialParams.Log.Write(string.Format("用户表GUID 是{0},LogonName是{1}的记录执行更新时出错,错误是{2}", drs["GUID"].ToString(), drs["LOGON_NAME"].ToString(), ex.Message)); } } }