-
내가 쓰려고 만든 C# 윈폼 템플릿 (저장 (Insert, Update) )C# 2020. 9. 15. 14:11
클래스 변수로 String Mode를 만들어놓고 신규를 누르면 Mode ="Insert", 기본적으로는 Mode="Update"로 세팅해 놓고
- Insert가 끝나면 Mode를 Update로 돌린다.
- 셀클릭을 해도 Mode를 Update로 돌린다.
- 검색을 새로 해도 Mode를 Update로 돌린다.
저장 버튼 클릭시 호출되는 메서드 필수입력 항목은 if문으로 저장프로세스가 실행되지 않도록 막아주고 그외의 항목들은 Insert할때 비어있으면 Null혹은 ""를 채워준다.
if(MODE =="INSERT") { if (B_cboCOMP_NM.Text == "선택") { MetroMessageBox.Show(this, "회사명 입력해주세요"); return; } else if (B_cboPLANT_NM.Text == "선택") { MetroMessageBox.Show(this, "공장명을 입력해주세요"); return; } else if (B_cboWB_NM.Text == "선택") { MetroMessageBox.Show(this, "작업장을 입력해주세요"); return; } else if (B_txtWC_CD.Text == "") { MetroMessageBox.Show(this, "공정코드를 입력해주세요"); return; } else if (B_txtWC_NM.Text == "") { MetroMessageBox.Show(this, "공장코드명을 입력해주세요"); return; } else { if (checking_CD_primarykey() && checking_NM_primarykey()) { InsertProcess(); MODE = "UPDATE"; DisableControl(); } else { MetroMessageBox.Show(this, "중복된 공장코드 혹은 공장코드명입니다."); } } } else if(MODE=="UPDATE") { if(checking_NM_primarykey2()) UpdateProcess(); }
InsertProcess()
using (SqlConnection conn = new SqlConnection(Commons.CONNSTRING)) //INSERT프로세스 { DataSet ds = new DataSet(); conn.Open(); // 2개의 파라미터 정의 (항상 @로 시작) string sql = " INSERT INTO dbo.CIS_WC " + " (COMP_CD " + " , PLANT_CD " + " , WB_CD " + " , WC_CD " + " , WC_NM " + " , RMK " + " , USE_YN " + " , CREATION_DATE " + " , CREATION_BY " + " , AlphaTime) " + " VALUES " + " (@COMP_CD " + " , @PLANT_CD " + " , @WB_CD " + " , @WC_CD " + " , @WC_NM " + " , @RMK " + " , @USE_YN " + " , @CREATION_DATE " + " , @CREATION_BY " + " , @AlphaTime) "; SqlCommand cmd = new SqlCommand(sql, conn); SqlParameter paramCity = new SqlParameter("@COMP_CD", SqlDbType.VarChar, 10); paramCity.Value = B_cboCOMP_NM.SelectedValue.ToString(); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@PLANT_CD", SqlDbType.VarChar, 10); paramCity.Value = B_cboPLANT_NM.SelectedValue.ToString(); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@WB_CD", SqlDbType.VarChar, 10); paramCity.Value = B_cboWB_NM.SelectedValue.ToString(); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@WC_CD", SqlDbType.VarChar, 10); paramCity.Value = B_txtWC_CD.Text; cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@WC_NM", SqlDbType.VarChar, 50); paramCity.Value = B_txtWC_NM.Text; cmd.Parameters.Add(paramCity); if (B_txtRMK.Text == "") //필수항목 외에는 조건을 걸어준다 { paramCity = new SqlParameter("@RMK", SqlDbType.VarChar, 500); paramCity.Value = ""; cmd.Parameters.Add(paramCity); } else { paramCity = new SqlParameter("@RMK", SqlDbType.VarChar, 500); paramCity.Value = B_txtRMK.Text; cmd.Parameters.Add(paramCity); } paramCity = new SqlParameter("@USE_YN", SqlDbType.VarChar, 1); paramCity.Value = B_cboUSE_YN.Text.Substring(0, 1); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@CREATION_DATE", SqlDbType.DateTime); paramCity.Value = DateTime.Now.ToString(); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@CREATION_BY", SqlDbType.VarChar, 10); paramCity.Value = Commons.LOGINUSERID; cmd.Parameters.Add(paramCity); if (B_txtALPHATIME.Text == "") { paramCity = new SqlParameter("@AlphaTime", SqlDbType.Decimal); paramCity.Value = 0; cmd.Parameters.Add(paramCity); } else { paramCity = new SqlParameter("@AlphaTime", SqlDbType.Decimal); paramCity.Value = Decimal.Parse( B_txtALPHATIME.Text); cmd.Parameters.Add(paramCity); } cmd.ExecuteNonQuery(); conn.Close(); MetroMessageBox.Show(this, "저장되었습니다."); } UpdateDataGridVview();
미리 정의 해놓은 Select역할을 하는 UpdateDataGridVview()호출
UpdateProcess()
private void UpdateProcess() { using (SqlConnection conn = new SqlConnection(Commons.CONNSTRING)) //INSERT프로세스 { DataSet ds = new DataSet(); conn.Open(); // 2개의 파라미터 정의 (항상 @로 시작) string sql = " UPDATE dbo.CIS_WC " + " SET " + " WC_NM = @WC_NM " + " , RMK = @RMK " + " , USE_YN = @USE_YN " + " , UPDATE_DATE = @UPDATE_DATE " + " , UPDATE_BY = @UPDATE_BY " + " , AlphaTime = @AlphaTime " + " WHERE WC_CD = @WC_CD "; SqlCommand cmd = new SqlCommand(sql, conn); SqlParameter paramCity = new SqlParameter("@WC_CD", SqlDbType.VarChar, 10); paramCity.Value = B_txtWC_CD.Text; cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@WC_NM", SqlDbType.VarChar, 50); paramCity.Value = B_txtWC_NM.Text; cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@RMK", SqlDbType.VarChar, 500); paramCity.Value = B_txtRMK.Text; cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@USE_YN", SqlDbType.VarChar, 1); paramCity.Value = B_cboUSE_YN.Text.Substring(0, 1); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@UPDATE_DATE", SqlDbType.DateTime); paramCity.Value = DateTime.Now.ToString(); cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@UPDATE_BY", SqlDbType.VarChar, 10); paramCity.Value = Commons.LOGINUSERID; cmd.Parameters.Add(paramCity); paramCity = new SqlParameter("@AlphaTime", SqlDbType.Decimal); paramCity.Value = Decimal.Parse(B_txtALPHATIME.Text); cmd.Parameters.Add(paramCity); cmd.ExecuteNonQuery(); conn.Close(); MetroMessageBox.Show(this, "저장되었습니다."); } UpdateDataGridVview(); }
'C#' 카테고리의 다른 글
c# 윈폼 패킷 아날라이저 (0) 2020.09.18 내가 쓰려고 만든 C# 윈폼 템플릿(Check박스를 이용한 Delete) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿 (데이터그리드뷰 셀 병합) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(기본키 확인 메서드) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(데이터 그리드뷰 셀 클릭,데이터 그리드 뷰 내부의 삭제 체크박스) (0) 2020.09.15