using System; using System.Collections.Generic; using System.Linq; namespace BLL { /// /// 数据合并清理 /// public class DataCleanupMergeHelper { /// /// 数据合并清理 /// /// 排除操作数据表 /// 替换字段(模糊匹配) /// 需要替换的数据值 /// 新的字段数据值 /// public static bool DataCleanupMerge(string exTable, string columType, List mergeDataIds, string dataId, ref string msg) { bool result = false; try { Model.SGGLDB db = Funs.DB; var clist = db.DataIdMove.Where(x => x.ColumType == columType && x.NewIds == dataId).ToList(); db.DataIdMove.DeleteAllOnSubmit(clist); db.SubmitChanges(); List list = new List(); foreach (var mergeId in mergeDataIds) { list.Add(new Model.DataIdMove { OldId = mergeId.Trim(), NewIds = dataId.Trim(), ColumType = columType }); } db.DataIdMove.InsertAllOnSubmit(list); db.SubmitChanges(); //SP_DataIdMove[排除操作数据表,替换字段(模糊匹配),字段数据值] string strSql = $"exec SP_DataIdMove '{exTable}','{columType}','{dataId}'"; result = BLL.SQLHelper.ExecuteSql(strSql); //SqlParameter[] parameters = { // new SqlParameter("@exTable", exTable), // new SqlParameter("@colums", columType), // new SqlParameter("@trueId", dataId), // new SqlParameter("@returnVal", SqlDbType.Int) //}; //BLL.SQLHelper.ExecuteNonQueryStoredProcedure("SP_DataIdMove", parameters); //int succ = BLL.SQLHelper.ExecuteProcedure("SP_DataIdMove", parameters); //Thread.Sleep(30000); // 等待30秒,30000毫秒等于30秒 if (result) { db.DataIdMove.DeleteAllOnSubmit(list); db.SubmitChanges(); msg = "数据合并成功!"; } else { msg = "数据合并失败,请稍后再试!"; } } catch (Exception ex) { msg = ex.Message; result = false; } return result; } } }