-
내가 쓰려고 만든 C# 윈폼 템플릿(기본키 확인 메서드)C# 2020. 9. 15. 13:57
1. Insert를 하기전에 프로그램 내부적으로 기본키가 겹치는지 확인해줘야 한다.
private bool CheckPartCD_primaryKey() { List<string> alist = new List<string>(); using (SqlConnection conn = new SqlConnection(Commons.CONNSTRING)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = " SELECT PART_NO FROM CIS_MATERIAL WHERE PART_NO = @PART_NO "; SqlParameter paramCity = new SqlParameter("@PART_NO", SqlDbType.VarChar, 20); paramCity.Value = B_txtPART_NO.Text; cmd.Parameters.Add(paramCity); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { alist.Add(reader[0].ToString()); } return (alist.Count==0) } }
WHERE 절에 적힌 매개변수에 의해 SELECT가 되면 기본키가 중복된 것이다 따라서 List에 Read된 항목이 있으면 안된다. return 부분은 그때그때 바꿔서 사용한다. 반환타입이 bool이므로 참이면 Insert를 진행하고 아니면 메세지 박스를 띄워주면 된다.
2. 검색가능한 콤보박스에서 텍스트에 친 항목이 데이터베이스에 존재하는가 판별 메서드
private bool CheckingPerson(string person_name) { List<string> alist = new List<string>(); using (SqlConnection conn = new SqlConnection(Commons.CONNSTRING)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = " SELECT USER_NM FROM CIS_USER WHERE USER_NM = @USER_NM "; SqlParameter paramCity = new SqlParameter("@USER_NM", SqlDbType.VarChar, 20); paramCity.Value = person_name; cmd.Parameters.Add(paramCity); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { alist.Add(reader[0].ToString()); } if (alist.Count > 0) return false; else return true; }
'C#' 카테고리의 다른 글
내가 쓰려고 만든 C# 윈폼 템플릿 (저장 (Insert, Update) ) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿 (데이터그리드뷰 셀 병합) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(데이터 그리드뷰 셀 클릭,데이터 그리드 뷰 내부의 삭제 체크박스) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(콤보박스 데이터 바인딩) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿 (SELECT) (0) 2020.09.15