/// <summary> /// DetAttendance 대해 입실시간 Update 메서드 /// 1. 입실시간(attendance 테이블), 학생이름(student 테이블) 입력받도록 => inner join사용, on stuID /// 2. 단, stuName(학생 이름)이 일치하면 수행 /// 3. ExecuteNonQuery() 수행한 행의 결과를 int rows에 담아서 /// 4. 행의 결과가 0보다 크면 true, 아니면 false 반환 /// </summary> /// <param name="st"></param> /// <returns></returns> public bool UpdateEnteringTime(SetAttendanceText st) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandText = $@"update attendance A inner join student S on A.stuID = S.stuID set enteringTime = @enteringTime where S.stuName = @stuName;"; cmd.Connection = conn; cmd.Parameters.Add("@enteringTime", MySqlDbType.VarChar); cmd.Parameters["@enteringTime"].Value = st.enteringTime.ToString("HH:mm"); cmd.Parameters.Add("@stuName", MySqlDbType.VarChar); cmd.Parameters["@stuName"].Value = st.stuName; int rows = cmd.ExecuteNonQuery(); if (rows > 0) { return(true); } else { return(false); } } catch (Exception err) { throw err; } }
/// <summary> /// DetAttendance 대해 기타 Update 메서드 /// 1. 입실시간, 퇴실시간, 지각여부, 결석여부, 조퇴여부, 학생이름 입력받도록 => inner join사용, on stuID /// 2. 단, stuName(학생 이름)이 일치하면 수행 /// 3. ExecuteNonQuery() 수행한 행의 결과를 int rows에 담아서 /// 4. 행의 결과가 0보다 크면 true, 아니면 false 반환 /// </summary> /// <param name="st"></param> /// <returns></returns> public bool UpdateETC(SetAttendanceText st) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandText = $@"update attendance A inner join student S on A.stuID = S.stuID set A.enteringTime = @enteringTime, A.entranceTime = @entranceTime, A.lateness = @lateness, early_Leave = @early_Leave, recordContent = @recordContent where S.stuName = @stuName;"; cmd.Connection = conn; cmd.Parameters.Add("@enteringTime", MySqlDbType.VarChar); cmd.Parameters["@enteringTime"].Value = st.enteringTime.ToString("HH:mm"); cmd.Parameters.Add("@entranceTime", MySqlDbType.VarChar); cmd.Parameters["@entranceTime"].Value = st.entranceTime.ToString("HH:mm"); cmd.Parameters.Add("@lateness", MySqlDbType.VarChar); cmd.Parameters["@lateness"].Value = st.lateness; cmd.Parameters.Add("@early_Leave", MySqlDbType.VarChar); cmd.Parameters["@early_Leave"].Value = st.early_Leave; cmd.Parameters.Add("@recordContent", MySqlDbType.Text); cmd.Parameters["@recordContent"].Value = st.recordContent; cmd.Parameters.Add("@stuName", MySqlDbType.VarChar); cmd.Parameters["@stuName"].Value = st.stuName; int rows = cmd.ExecuteNonQuery(); if (rows > 0) { return(true); } else { return(false); } } catch (Exception err) { throw err; } }
/// <summary> /// 결석 이미지 클릭 이벤트 /// 1. 퇴실 시간, 이름, 기록사항의 내용을 SetAttendanceText의 st에 담아 DB의 UpdateEnteranceTime() 수행 /// 2. bool 타입의 bFlag로 받아서 true = 정보수정/ false = 수정불가 메세지 출력 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pictureBox3_Click(object sender, EventArgs e) { try { AttendanceDB db = new AttendanceDB(); SetAttendanceText st = new SetAttendanceText(dtpEntranceTime.Value, txtName.Text, txtRecordContent.Text); bool bFlag = db.UpdateEnteranceTime(st); if (bFlag) { MessageBox.Show("정보 수정이 완료되었습니다."); } else { MessageBox.Show("형식을 잘못 입력하였거나 빈 항목이 있습니다."); } } catch (Exception err) { MessageBox.Show(err.Message); } }
/// <summary> /// 기타 이미지 클릭 이벤트 /// 1. 출석시간, 퇴실시간, 지각여부, 조퇴여부, 기록사항, 이름의 내용을 SetAttendanceText의 st에 담아 DB의 UpdateETC() 수행 /// 2. bool 타입의 bFlag로 받아서 true = 정보수정/ false = 수정불가 메세지 출력 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pictureBox4_Click(object sender, EventArgs e) { try { AttendanceDB db = new AttendanceDB(); SetAttendanceText st = new SetAttendanceText(dtpEnteringTime.Value, dtpEntranceTime.Value, Convert.ToChar(rbtnLatenessY.Text.ToUpper().Trim()), Convert.ToChar(rbtnLeaveY.Text.ToUpper().Trim()), txtRecordContent.Text, txtName.Text); bool bFlag = db.UpdateETC(st); if (bFlag) { MessageBox.Show("정보 수정이 완료되었습니다."); } else { MessageBox.Show("형식을 잘못 입력하였거나 빈 항목이 있습니다."); } } catch (Exception err) { MessageBox.Show(err.Message); } }