private void GrdDivTbl_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { DataGridViewRow data = GrdBooksTbl.Rows[e.RowIndex]; // TODO : 클릭시 입력컨트롤에 데이터 할당 TxtIdx.Text = data.Cells[0].Value.ToString(); TxtAuthor.Text = data.Cells[1].Value.ToString(); // 로맨스, 추리 등 디스플레이 되는 글자로 인덱스 찾기 //CboDivision.SelectedIndex = CboDivision.FindString(data.Cells[3].Value.ToString()); // 코드값 그대로 할당 B001, B002 등 CboDivision.SelectedValue = data.Cells[2].Value; TxtNames.Text = data.Cells[4].Value.ToString(); DtpReleaseDate.CustomFormat = "yyyy-MM-dd"; DtpReleaseDate.Format = DateTimePickerFormat.Custom; DtpReleaseDate.Value = DateTime.Parse(data.Cells[5].Value.ToString()); TxtISBN.Text = data.Cells[6].Value.ToString(); TxtPrice.Text = data.Cells[7].Value.ToString(); myMode = BtnMode.UPDATE; // 수정모드로 변경 TxtIdx.ReadOnly = true; } }
private void GrdRentalTbl_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { DataGridViewRow data = GrdRentalTbl.Rows[e.RowIndex]; // TODO : 클릭시 입력컨트롤에 데이터 할당 TxtIdx.Text = data.Cells[0].Value.ToString(); CboMember.SelectedValue = data.Cells[6].Value.ToString(); CboBook.SelectedValue = data.Cells[7].Value.ToString(); DtpRentalDate.Value = DateTime.Parse(data.Cells[4].Value.ToString()); if (!string.IsNullOrEmpty(data.Cells[5].Value.ToString())) { DtpReturnDate.CustomFormat = "yyyy-MM-dd"; DtpReturnDate.Format = DateTimePickerFormat.Custom; DtpReturnDate.Value = DateTime.Parse(data.Cells[5].Value.ToString()); } else { DtpReturnDate.Value = DateTime.Now; DtpReturnDate.CustomFormat = " "; DtpReturnDate.Format = DateTimePickerFormat.Custom; } myMode = BtnMode.UPDATE; // 수정모드로 변경 TxtIdx.ReadOnly = true; } }
private void BtnCancel_Click(object sender, EventArgs e) { InitControls(); myMode = BtnMode.NONE; // 모드 초기화 GrdMemberTbl.Focus(); }
private void BtnNew_Click(object sender, EventArgs e) { InitControls(); myMode = BtnMode.INSERT; // 신규입력 모드 TxtNames.Focus(); }
private void BtnNew_Click(object sender, EventArgs e) { InitControls(); TxtDivision.ReadOnly = false; myMode = BtnMode.INSERT; // 신규입력 모드 TxtNames.Focus(); }
/* * private void DeleteData() * { * try * { * using (MySqlConnection conn = new MySqlConnection(Commons.CONNSTR)) * { * conn.Open(); * MySqlCommand cmd = new MySqlCommand(); * cmd.Connection = conn; * cmd.CommandText = "DELETE FROM divtbl" + * " WHERE Division = @Division "; * MySqlParameter paramDivision = new MySqlParameter("@Division", MySqlDbType.VarChar); * paramDivision.Value = TxtDivision.Text; * cmd.Parameters.Add(paramDivision); * * cmd.ExecuteNonQuery(); * * if (myMode == BtnMode.INSERT) * { * MetroMessageBox.Show(this, $"구분코드 {paramDivision.Value}가 삭제되었습니다.", "삭제"); * myMode = BtnMode.NONE; * } * } * } * catch (Exception ex) * { * MetroMessageBox.Show(this, $"에러발생 {ex.Message}", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error); * } * finally * { * UpdateData(); * } * } */ #endregion private void BtnCancel_Click(object sender, EventArgs e) { TxtDivision.Text = string.Empty; TxtNames.Text = string.Empty; TxtDivision.ReadOnly = false; myMode = BtnMode.NONE; // 모드 초기화 GrdDivTbl.Focus(); }
private void GrdDivTbl_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { DataGridViewRow data = GrdDivTbl.Rows[e.RowIndex]; TxtDivision.Text = data.Cells[0].Value.ToString(); TxtNames.Text = data.Cells[1].Value.ToString(); TxtDivision.ReadOnly = true; myMode = BtnMode.UPDATE; // 수정모드로 변경 TxtNames.Focus(); } }
private void BtnDelete_Click(object sender, EventArgs e) { if (myMode != BtnMode.UPDATE) { MetroMessageBox.Show(this, $"삭제할 데이터를 선택하세요.", "알림"); return; } myMode = BtnMode.DELETE; //DeleteData(); SaveData(); InitControls(); GrdDivTbl.Focus(); }
private void GrdDivTbl_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { DataGridViewRow data = GrdMemberTbl.Rows[e.RowIndex]; // TODO : 클릭시 입력컨트롤에 데이터 할당 TxtIdx.Text = data.Cells[0].Value.ToString(); TxtNames.Text = data.Cells[1].Value.ToString(); CboLevel.SelectedItem = data.Cells[2].Value; // CboLevel.SelectedValue = data.Cells[2].Value; TxtAddr.Text = data.Cells[3].Value.ToString(); TxtMobile.Text = data.Cells[4].Value.ToString(); TxtEmail.Text = data.Cells[5].Value.ToString(); myMode = BtnMode.UPDATE; // 수정모드로 변경 TxtIdx.ReadOnly = true; } }
private void BtnDelete_Click(object sender, EventArgs e) { if (myMode != BtnMode.UPDATE) { MetroMessageBox.Show(this, $"삭제할 데이터를 선택하세요.", "알림"); return; } DialogResult choice = MetroMessageBox.Show(this, "삭제하시겠습니까?", "경고", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (choice == DialogResult.No) { return; } myMode = BtnMode.DELETE; //DeleteData(); SaveData(); InitControls(); GrdMemberTbl.Focus(); }
/// <summary> /// DB 업데이트 및 입력 처리 /// </summary> private void SaveData() { // 빈값비교 NULL 체크 if (string.IsNullOrEmpty(TxtNames.Text) || CboLevel.SelectedIndex < 1 || string.IsNullOrEmpty(TxtAddr.Text) || string.IsNullOrEmpty(TxtEmail.Text) || string.IsNullOrEmpty(TxtMobile.Text)) { MetroMessageBox.Show(this, "값을 입력해주세요.", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (myMode == BtnMode.NONE) { MetroMessageBox.Show(this, "신규 등록시 신규 버튼을 눌러주세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { using (MySqlConnection conn = new MySqlConnection(Commons.CONNSTR)) // using문 사용하면 conn.Close() 안해줘도 된다. -> 사용시 자동으로 일을 해줌 { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; if (myMode == BtnMode.UPDATE) { cmd.CommandText = "UPDATE membertbl " + " SET Names = @Names, " + " Levels = @Levels, " + " Addr = @Addr, " + " Mobile = @Mobile, " + " Email = @Email " + " WHERE Idx = @Idx"; } else if (myMode == BtnMode.INSERT) { cmd.CommandText = "INSERT INTO membertbl " + "( Names, " + " Levels, " + " Addr, " + " Mobile, " + " Email) " + "VALUES " + " (@Names, " + " @Levels, " + " @Addr, " + " @Mobile, " + " @Email)"; } else if (myMode == BtnMode.DELETE) { cmd.CommandText = "DELETE FROM membertbl " + " WHERE Idx = @idx"; } if (myMode == BtnMode.INSERT || myMode == BtnMode.UPDATE) { // 이름 MySqlParameter paramNames = new MySqlParameter("@Names", MySqlDbType.VarChar, 45) { Value = TxtNames.Text.Trim() }; cmd.Parameters.Add(paramNames); // 레벨 MySqlParameter paramLevels = new MySqlParameter("@Levels", MySqlDbType.VarChar, 1) { Value = CboLevel.SelectedItem//Value = CboLevel.SelectedValue }; cmd.Parameters.Add(paramLevels); // 주소 MySqlParameter paramAddr = new MySqlParameter("@Addr", MySqlDbType.VarChar, 100) { Value = TxtAddr.Text.Trim() }; cmd.Parameters.Add(paramAddr); // 전화번호 MySqlParameter paramMobile = new MySqlParameter("@Mobile", MySqlDbType.VarChar, 13) { Value = TxtMobile.Text.Trim() }; cmd.Parameters.Add(paramMobile); // 이메일 MySqlParameter paramEmail = new MySqlParameter("@Email", MySqlDbType.VarChar, 50) { Value = TxtEmail.Text.Trim() }; cmd.Parameters.Add(paramEmail); } if (myMode == BtnMode.UPDATE || myMode == BtnMode.DELETE) { // Idx : PK, AI MySqlParameter paramIdx = new MySqlParameter("@Idx", MySqlDbType.Int32) { Value = TxtIdx.Text.Trim() }; cmd.Parameters.Add(paramIdx); } var result = cmd.ExecuteNonQuery(); if (myMode == BtnMode.INSERT) { MetroMessageBox.Show(this, $"신규 입력되었습니다.", "신규 입력"); myMode = BtnMode.UPDATE; } else if (myMode == BtnMode.UPDATE) { MetroMessageBox.Show(this, $"일련번호 {TxtIdx.Text.Trim()}인 {TxtNames.Text.Trim()}이 수정되었습니다.", "회원 정보 수정"); } else if (myMode == BtnMode.DELETE) { MetroMessageBox.Show(this, $"일련번호 {TxtIdx.Text.Trim()}인 {TxtNames.Text.Trim()}이 삭제되었습니다.", "회원 삭제"); } } } catch (Exception ex) { MetroMessageBox.Show(this, $"에러발생 {ex.Message}", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { UpdateData(); } }
/// <summary> /// DB 업데이트 및 입력 처리 /// </summary> private void SaveData() { if (string.IsNullOrEmpty(TxtDivision.Text) || string.IsNullOrEmpty(TxtNames.Text)) { MetroMessageBox.Show(this, "값을 입력해주세요.", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (myMode == BtnMode.NONE) { MetroMessageBox.Show(this, "신규 등록시 신규 버튼을 눌러주세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { using (MySqlConnection conn = new MySqlConnection(Commons.CONNSTR)) // using문 사용하면 conn.Close() 안해줘도 된다. -> 사용시 자동으로 일을 해줌 { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; if (myMode == BtnMode.UPDATE) { cmd.CommandText = "UPDATE divtbl " + " SET Names = @Names " + " WHERE Division = @Division "; } else if (myMode == BtnMode.INSERT) { cmd.CommandText = "INSERT INTO divtbl (Division, Names) " + "VALUES (@Division, @Names)"; } else if (myMode == BtnMode.DELETE) { cmd.CommandText = "DELETE FROM divtbl" + " WHERE Division = @Division "; } if (myMode == BtnMode.INSERT || myMode == BtnMode.UPDATE) { MySqlParameter paramNames = new MySqlParameter("@Names", MySqlDbType.VarChar, 45); paramNames.Value = TxtNames.Text.Trim(); cmd.Parameters.Add(paramNames); } MySqlParameter paramDivision = new MySqlParameter("@Division", MySqlDbType.VarChar); paramDivision.Value = TxtDivision.Text.Trim(); cmd.Parameters.Add(paramDivision); var result = cmd.ExecuteNonQuery(); if (myMode == BtnMode.INSERT) { MetroMessageBox.Show(this, $"신규 입력되었습니다.", "신규 입력"); myMode = BtnMode.UPDATE; } else if (myMode == BtnMode.UPDATE) { MetroMessageBox.Show(this, $"구분코드 {TxtDivision.Text.Trim()}가 {TxtNames.Text.Trim()}로 수정되었습니다.", "항목 수정"); } else if (myMode == BtnMode.DELETE) { MetroMessageBox.Show(this, $"구분코드 {TxtDivision.Text.Trim()}가 삭제되었습니다.", "삭제"); myMode = BtnMode.NONE; } } } catch (Exception ex) { MetroMessageBox.Show(this, $"에러발생 {ex.Message}", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { UpdateData(); } }
/// <summary> /// DB 업데이트 및 입력 처리 /// </summary> private void SaveData() { // 빈값비교 NULL 체크 if (string.IsNullOrEmpty(TxtAuthor.Text) || CboDivision.SelectedIndex < 1 || string.IsNullOrEmpty(TxtNames.Text) || string.IsNullOrEmpty(TxtISBN.Text)) { MetroMessageBox.Show(this, "값을 입력해주세요.", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (myMode == BtnMode.NONE) { MetroMessageBox.Show(this, "신규 등록시 신규 버튼을 눌러주세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { using (MySqlConnection conn = new MySqlConnection(Commons.CONNSTR)) // using문 사용하면 conn.Close() 안해줘도 된다. -> 사용시 자동으로 일을 해줌 { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; if (myMode == BtnMode.UPDATE) { cmd.CommandText = "UPDATE bookstbl " + " SET Author = @Author, " + " Division = @Division, " + " Names = @Names, " + " ReleaseDate = @ReleaseDate, " + " ISBN = @ISBN, " + " Price = @Price " + " WHERE Idx = @Idx"; } else if (myMode == BtnMode.INSERT) { cmd.CommandText = "INSERT INTO bookstbl " + "( Author, " + " Division, " + " Names, " + " ReleaseDate, " + " ISBN, " + " Price) " + "VALUES " + " (@Author, " + " @Division, " + " @Names, " + " @ReleaseDate, " + " @ISBN, " + " @Price)"; } // 저자명 MySqlParameter paramAuthor = new MySqlParameter("@Author", MySqlDbType.VarChar, 45) { Value = TxtAuthor.Text.Trim() }; cmd.Parameters.Add(paramAuthor); // 장르 MySqlParameter paramDivision = new MySqlParameter("@Division", MySqlDbType.VarChar, 4) { Value = CboDivision.SelectedValue // B001, B002; }; cmd.Parameters.Add(paramDivision); // 책이름 MySqlParameter paramNames = new MySqlParameter("@Names", MySqlDbType.VarChar, 100) { Value = TxtNames.Text.Trim() }; cmd.Parameters.Add(paramNames); // 출간일 MySqlParameter paramReleaseDate = new MySqlParameter("@ReleaseDate", MySqlDbType.Date) { Value = DtpReleaseDate.Value }; cmd.Parameters.Add(paramReleaseDate); // ISBN MySqlParameter paramISBN = new MySqlParameter("@ISBN", MySqlDbType.VarChar, 13) { Value = TxtISBN.Text.Trim() }; cmd.Parameters.Add(paramISBN); // 가격 MySqlParameter paramPrice = new MySqlParameter("@Price", MySqlDbType.Decimal) { Value = TxtPrice.Text.Trim() }; cmd.Parameters.Add(paramPrice); if (myMode == BtnMode.UPDATE) { // Idx : PK, AI MySqlParameter paramIdx = new MySqlParameter("@Idx", MySqlDbType.Int32) { Value = TxtIdx.Text.Trim() }; cmd.Parameters.Add(paramIdx); } var result = cmd.ExecuteNonQuery(); if (myMode == BtnMode.INSERT) { MetroMessageBox.Show(this, $"신규 입력되었습니다.", "신규 입력"); myMode = BtnMode.UPDATE; } else if (myMode == BtnMode.UPDATE) { MetroMessageBox.Show(this, $"일련번호 {TxtIdx.Text.Trim()}인 {TxtNames.Text.Trim()}이 수정되었습니다.", "항목 수정"); } } } catch (Exception ex) { MetroMessageBox.Show(this, $"에러발생 {ex.Message}", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { UpdateData(); } }
/// <summary> /// DB 업데이트 및 입력 처리 /// </summary> private void SaveData() { // 빈값비교 NULL 체크 if (CboMember.SelectedIndex < 1 || CboBook.SelectedIndex < 1) { MetroMessageBox.Show(this, "값을 입력해주세요.", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (myMode == BtnMode.NONE) { MetroMessageBox.Show(this, "신규 등록시 신규 버튼을 눌러주세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { using (MySqlConnection conn = new MySqlConnection(Commons.CONNSTR)) // using문 사용하면 conn.Close() 안해줘도 된다. -> 사용시 자동으로 일을 해줌 { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; if (myMode == BtnMode.UPDATE) { cmd.CommandText = "UPDATE rentaltbl " + " SET " + " memberIdx = memberIdx " + " , bookIdx = @bookIdx " + " , rentalDate = @rentalDate " + " , returnDate = @returnDate " + " WHERE Idx = @Idx"; } else if (myMode == BtnMode.INSERT) { cmd.CommandText = "INSERT INTO rentaltbl " + "( memberIdx, " + " bookIdx, " + " rentalDate, " + " returnDate) " + "VALUES " + "( @memberIdx, " + " @bookIdx, " + " @rentalDate, " + " @returnDate)"; } // memberIdx MySqlParameter paramMemberIdx = new MySqlParameter("@memberIdx", MySqlDbType.Int32); paramMemberIdx.Value = CboMember.SelectedValue; cmd.Parameters.Add(paramMemberIdx); // bookIdx MySqlParameter paramBookIdx = new MySqlParameter("@bookIdx", MySqlDbType.Int32); paramBookIdx.Value = CboBook.SelectedValue; cmd.Parameters.Add(paramBookIdx); // rentalDate MySqlParameter paramRentalDate = new MySqlParameter("@rentalDate", MySqlDbType.Date); paramRentalDate.Value = DtpRentalDate.Value; cmd.Parameters.Add(paramRentalDate); // returnDate MySqlParameter paramReturnDate = new MySqlParameter("@returnDate", MySqlDbType.Date); if (myMode == BtnMode.INSERT) { paramReturnDate.Value = null; } else { paramReturnDate.Value = DtpReturnDate.Value; } cmd.Parameters.Add(paramReturnDate); var result = cmd.ExecuteNonQuery(); if (myMode == BtnMode.INSERT) { MetroMessageBox.Show(this, $"신규 입력되었습니다.", "신규 입력"); myMode = BtnMode.UPDATE; } else if (myMode == BtnMode.UPDATE) { MetroMessageBox.Show(this, $"일련번호 {TxtIdx.Text.Trim()}가 수정되었습니다.", "수정"); } } } catch (Exception ex) { MetroMessageBox.Show(this, $"에러발생 {ex.Message}", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { UpdateData(); } }