전체 글
-
내가 쓰려고 만든 C# 윈폼 템플릿 (데이터그리드뷰 셀 병합)C# 2020. 9. 15. 14:01
1. C# 윈폼에는 셀병합 기능이 없다. 시각적으로 비슷한 효과를 내는 함수 bool IsTheSameCellValue(int column, int row) { DataGridViewCell cell1 = dataGridView1[column, row]; DataGridViewCell cell2 = dataGridView1[column, row - 1]; if (cell1.Value == null || cell2.Value == null) { return false; } return cell1.Value.ToString() == cell2.Value.ToString(); } 메서드 정의 다음 데이터 그리드 뷰의 CellFormatting 이벤트 private void dataGridView1_CellFo..
-
내가 쓰려고 만든 C# 윈폼 템플릿(기본키 확인 메서드)C# 2020. 9. 15. 13:57
1. Insert를 하기전에 프로그램 내부적으로 기본키가 겹치는지 확인해줘야 한다. private bool CheckPartCD_primaryKey() { List alist = new List(); 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.V..
-
내가 쓰려고 만든 C# 윈폼 템플릿(데이터 그리드뷰 셀 클릭,데이터 그리드 뷰 내부의 삭제 체크박스)C# 2020. 9. 15. 13:50
1. 별거 없다 데이터그리드뷰의 한 Row에 대하여 텍스트 박스 혹은 콤보박스에 갔다 붙인다. 각 컨트롤 중에 변경이 불가능하게 하고 싶은 항목들은 Enable이 False로. 콤보박스는 데이터바인딩이 되어있거나 셀안에 내용이 있으면 FindString을 통해서 인덱스를 찾아서 Selected인덱스를 맞춰준다. private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { EnableControl(); B_cboCOMP_NM.Enabled = false; B_cboPLANT_NM.Enabled = false; B_cboCUSTOMER_CODE.Enabled = false; B_txtPART_NM.Enabled = fal..
-
내가 쓰려고 만든 C# 윈폼 템플릿(콤보박스 데이터 바인딩)C# 2020. 9. 15. 13:42
콤보박스 리스트형태로 쓰기 List list_cbobox; list_cbobox = new List() { B_cboCOMP_NM, B_cboCUSTOMER_CODE, B_cboPLANT_NM, B_cboUNIT , B_cboBUY_MANAGER,B_cboSTOCK_MANAGER}; List list_txtbox; list_txtbox = new List() { B_txtBUY_QTY, B_txtLTIME, B_txtORDER_QTY_MIN, B_txtPART_NM, B_txtPART_NO, B_txtPRICE, B_txtRMK, B_txtSAFTSR }; 리스트 형태로 enable disable 메서드 private void DisableControl() { foreach (var item in lis..
-
내가 쓰려고 만든 C# 윈폼 템플릿 (SELECT)C# 2020. 9. 15. 12:48
1. 데이터그리드뷰 SELECT ( DataSource Binding) using (SqlConnection conn = new SqlConnection(Commons.CONNSTRING)) { DataSet ds = new DataSet(); conn.Open(); // 2개의 파라미터 정의 (항상 @로 시작) string sql = " SELECT COMP.COMP_NM[회사명], PLANT.PLANT_NM[공장명], BIZ.CUSTOMER_NAME[거래처명]" + " , MAT.PART_NO[품번] , MAT.PART_NM[품명], REPLACE(CONVERT(VARCHAR,CONVERT(MONEY,MAT.PRICE),1), '.00', '')[가격], MAT.UNIT[단위], (CONVERT(VA..
-
C# IComparable을 이용한 List정렬C# 2020. 8. 21. 14:46
List.Sort는 CompareTo메소드를 정의해야 정렬가능하다. IComparable의 인터페이스 내부의 CompareTo 메소드를 정의해보자 public class Fact : IComparable { public string Name; public int Age; public string Gender; public int CompareTo(object obj) { Fact temp = (Fact)obj; return Age.CompareTo(temp.Age); //return Age.CompareTo(((Fact)obj).Age); } public override string ToString() { return string.Format($"[{Name},{Age},{Gender}]"); } } I..
-
C# Random 클래스C# 예제 공부일기 2020. 8. 20. 17:07
C#에서 랜덤값을 만드려면 Random 클래스를 사용한다. 클래스는 참조형이므로 다음과 같이 new 키워드를 사용하여 객체를 생성한다. Random r = new Random(); Next() 메소드는 다음과 같이 파라미터의 개수에 따라 세가지로 중복되어 있다. int x = r.Next() //0~21474837647 을 리턴 int y = r.Next(100) //0~99 까지를 리턴 int z = r.Next(1,7) //1~6 사이의 값 리턴 static void Main(string[] args) { Random r = new Random(); Console.Write("{0,-16}", "Random Bytes"); Byte[] b = new Byte[5]; r.NextBytes(b); Pri..