private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) { DataTable dt = e.Argument as DataTable; SQLJobThread jobThread = new SQLJobThread(mv_dbUtil); string seq = textBox1.Text; foreach (DataRow dr in dt.Rows) { if (isStopIssued) { isStopIssued = false; break; } if (dr["OPER_YN"].ToString() != "1") { continue; } string af_pwd = "da_" + StringUtil.GeneratePassword(14, 4, 5); backgroundWorker2.ReportProgress(0, af_pwd); WorkResult result0 = new WorkResult(); result0.PWD_CHG_OPER_SEQ = dr["PWD_CHG_OPER_SEQ"].ToString(); result0.DB_ID = dr["DB_ID"].ToString(); result0.ACNT_NM = dr["ACNT_NM"].ToString(); result0.OP_RSLT = "Connecting..."; backgroundWorker2.ReportProgress(10, result0); try { if (dr["PWD_TYP_CL_CD"].ToString() == "ENC") { dr["BF_PWD"] = Cipher.Decrypt(dr["BF_PWD"].ToString()); } } catch (Exception ex) { } string workresult1 = jobThread.ChangePassword(dr["CONN_STR_CTT"].ToString(), dr["ACNT_NM"].ToString(), dr["BF_PWD"].ToString(), af_pwd); WorkResult result1 = new WorkResult(); result1.PWD_CHG_OPER_SEQ = dr["PWD_CHG_OPER_SEQ"].ToString(); result1.DB_ID = dr["DB_ID"].ToString(); result1.ACNT_NM = dr["ACNT_NM"].ToString(); result1.OP_RSLT = workresult1; result1.DisbleRow = true; backgroundWorker2.ReportProgress(20, result1); if (workresult1 == "Success") { WorkResult result2 = new WorkResult(); result2.PWD_CHG_OPER_SEQ = dr["PWD_CHG_OPER_SEQ"].ToString(); result2.DB_ID = dr["DB_ID"].ToString(); result2.ACNT_NM = dr["ACNT_NM"].ToString(); result2.AF_PWD = af_pwd; backgroundWorker2.ReportProgress(30, result2); string af_pwd_enc = af_pwd; try { if (dr["PWD_TYP_CL_CD"].ToString() == "ENC") { af_pwd_enc = Cipher.Encrypt(af_pwd_enc); } } catch (Exception ex) { } string workresult2 = jobThread.UpdateOrncInfo(mv_dbUtil, dr["PWD_CHG_OPER_SEQ"].ToString(), dr["DB_ID"].ToString(), dr["ACNT_NM"].ToString(), dr["RAC_GRP_NM"].ToString(), af_pwd_enc); WorkResult result3 = new WorkResult(); result3.PWD_CHG_OPER_SEQ = dr["PWD_CHG_OPER_SEQ"].ToString(); result3.DB_ID = dr["DB_ID"].ToString(); result3.ACNT_NM = dr["ACNT_NM"].ToString(); result3.OP_RSLT = workresult2; backgroundWorker2.ReportProgress(40, result3); jobThread.UpdateOpeationHistory(mv_dbUtil, seq, dr["DB_ID"].ToString(), dr["ACNT_NM"].ToString(), af_pwd_enc, workresult2); } else { jobThread.UpdateOpeationHistory(mv_dbUtil, seq, dr["DB_ID"].ToString(), dr["ACNT_NM"].ToString(), "", workresult1); } } }