protected void UpdateButton_Click(object sender, EventArgs e) { if (Session["UserID"] == null) { Global.Application_SessionExpired(); return; } else { string currentProjectID = Request.QueryString["ProjectID"].ToString(); if (currentProjectID.Equals(origProjectID)) // check to make sure project id loaded and project id to save to wasn't altered somehow. { string currentManagerID = DropDownList8.SelectedValue, currentProjectName = Projectname.Value, currentCustomerID = DropDownList4.SelectedValue, currentIndustryID = DropDownList5.SelectedValue, currentStartDate = Text1.Value, currentEndDate = Text5.Value, currentStartDateFlex = Text3.Value, currentEndDateFlex = Text4.Value, currentProjectStage = DropDownList9.SelectedValue; bool currentStageOverride = check_StageOverride.Checked; bool changedStage = false, changedOverride = false, useAuto = false; if (origStageOverride == true && currentStageOverride == true) { changedStage = (origProjectStage == currentProjectStage) ? false : true; useAuto = false; } else if (origStageOverride == false && currentStageOverride == false) { useAuto = true; } else if (origStageOverride == true && currentStageOverride == false) { useAuto = true; changedOverride = true; } else if (origStageOverride == false && currentStageOverride == true) { changedStage = (origProjectStage == currentProjectStage) ? false : true; useAuto = false; changedOverride = true; } if (check_Manager.Checked || check_ProjectName.Checked || check_Customer.Checked || check_Industry.Checked || check_StartDate.Checked || check_EndDate.Checked || check_StartDateFlex.Checked || check_EndDateFlex.Checked || changedStage || useAuto || changedOverride) // check to see if anything was edited { SqlConnection con = new SqlConnection(Global.getConnectionString()); SqlCommand cmd = new SqlCommand("UPDATE pms_project", con); String pre = " SET "; if (check_Manager.Checked) { cmd.CommandText += pre; cmd.CommandText += "manager_id=@managerid"; cmd.Parameters.Add("@managerid", SqlDbType.Int).Value = currentManagerID; pre = ", "; } if (check_ProjectName.Checked) { cmd.CommandText += pre; cmd.CommandText += "name=@projname"; cmd.Parameters.Add("@projname", SqlDbType.VarChar).Value = currentProjectName; pre = ", "; } if (check_Customer.Checked) { cmd.CommandText += pre; cmd.CommandText += "customer_id=@custid"; cmd.Parameters.Add("@custid", SqlDbType.Int).Value = currentCustomerID; pre = ", "; } if (check_Industry.Checked) { cmd.CommandText += pre; cmd.CommandText += "industry_id=@industid"; cmd.Parameters.Add("@industid", SqlDbType.Int).Value = currentIndustryID; pre = ", "; } if (check_StartDate.Checked) { cmd.CommandText += pre; cmd.CommandText += "start_date=@startdate"; cmd.Parameters.Add("@startdate", SqlDbType.Date).Value = currentStartDate; pre = ", "; } if (check_EndDate.Checked) { cmd.CommandText += pre; cmd.CommandText += "end_date=@enddate"; cmd.Parameters.Add("@enddate", SqlDbType.Date).Value = currentEndDate; pre = ", "; } if (check_StartDateFlex.Checked) { cmd.CommandText += pre; cmd.CommandText += "start_date_flex=@startflex"; cmd.Parameters.Add("@startflex", SqlDbType.Int).Value = currentStartDateFlex; pre = ", "; } if (check_EndDateFlex.Checked) { cmd.CommandText += pre; cmd.CommandText += "end_date_flex=@endflex"; cmd.Parameters.Add("@endflex", SqlDbType.Int).Value = currentEndDateFlex; pre = ", "; } if (useAuto) { cmd.CommandText += pre; cmd.CommandText += "current_stage_override=NULL"; } else if (changedStage) { cmd.CommandText += pre; cmd.CommandText += "current_stage_override=@curstage"; cmd.Parameters.Add("@curstage", SqlDbType.Int).Value = currentProjectStage; } else if (changedOverride) { cmd.CommandText += pre; cmd.CommandText += "current_stage_override=@curstage"; cmd.Parameters.Add("@curstage", SqlDbType.Int).Value = currentProjectStage; } cmd.CommandText += " WHERE id=@projid"; cmd.Parameters.Add("@projid", SqlDbType.Int).Value = currentProjectID; cmd.CommandText += ";"; try { con.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { throw (ex); } finally { con.Close(); } logChanges(check_Manager.Checked, check_ProjectName.Checked, check_Customer.Checked, check_Industry.Checked, check_StartDate.Checked, check_EndDate.Checked, check_StartDateFlex.Checked, check_EndDateFlex.Checked, changedOverride, changedStage, useAuto); Response.Redirect("~/Manager/EditProject.aspx?ProjectID=" + Request.QueryString["ProjectID"]); } } } }