1. DataTable : 데이터베이스에서 조회된 데이터를 보여줄 때 많이 사용한다. : 데이터를 행과 열로써 저장할 수 있는 형식을 제공한다. * 행, 열 직접 추가 private void Form1_Load(object sender, EventArgs e) { //DataTable //데이터를 행과 열로써 저장할 수 있는 형식을 제공 DataTable dt = new DataTable(); //1번째 열 추가 DataColumn dc = new DataColumn(); dc.ColumnName = "숫자 타입"; dc.DataType = typeof(Int32); //2번째 열 추가 DataColumn dc2 = new DataColumn(); dc2.ColumnName = "이름"; dc2.Data..
1. Panel & Splitter Panel : 작업영역에 해당, 그룹화 가능 Splitter : 작업 영역을 조절 가능 => 윈폼 영역을 구분할 수 있다. 레이아웃 구성 가능. - Dock : 컨트롤의 위치 지정 - BackColor : 색 변경 * 이미지 파일 추가 방법 Properties > 리소스 > 리소스 추가 > 기존 파일 추가 > 이미지 파일 추가 2. TableLayoutPanel Dock - Fill : 화면 채우기 ColumnSpan : 열병합 행, 열 편집 - 크기 백분율, 절대값 지정하여 사이즈 조정 가능
ctrl + f5 : 실행(디버그 없이) 1. GroupBox => 하나의 영역으로 묶어서 사용 2. Label 3. MenuStrip => 메뉴 구성할 때 사용 각각의 메뉴에 이벤트 설정 가능 4. PictureBox * 이미지 추가 방법 Properties -> 리소스 -> 리소스 추가 -> 기존 파일 추가 -> 이미지 추가 -> Resource 폴더가 생기고 그 안에 이미지 파일이 추가된 것을 확인할 수 있다. * PictureBox 속성 -> Image -> 파일 추가 * 버튼 클릭 시 이미지 show private void button1_Click(object sender, EventArgs e) { pictureBox1.Image = Properties.Resources.이미지파일명; } 5...
MDI ( Multi Document Interface ) Form1.cs > 속성 isMdiContainer : 폼이 MDI 컨테이너인지 여부를 결정한다. >> true form2.MdiParent = this; >> 부모 MDI를 설정해주어야 한다. form2이 부모인 form1 영역 안에서만 보여지는 것을 확인할 수 있다. -------------------------------------------------- MessageBox System.Windows.Forms.dll 해당한다. using 으로 선언. ctrl + 클릭하면 해당 내용을 상세하게 볼 수 있다. MessageBox.Show(); 오버로딩되어 있는 걸로 알랏박스 종류, 버튼, 아이콘모양 설정 가능 * 사용자가 확인을 눌렀을 때 i..
.net framework - 윈도우 운영체제만 지원함. - .net core와 솔루션 탐색기에서 구성의 차이가 보여짐. 프로젝트 모습이 변경됨. 윈도우, 리눅스 등 다른 운영체제도 지원함. 최신 - .net core가 최신에 나왔기 때문에, 기존 프로젝트가 .net framework로 많이 개발되어 있어 계속해서 사용하고 있고, 안정적으로 운영하기 위해 지속적으로 사용함. 솔루션 탐색기 솔루션 안에는 여러 개의 프로젝트를 둘 수 있다. 프로젝트는 일종의 하나의 프로그램으로 볼 수 있다. - 우클릭 > [추가] > 새 프로젝트 ... ctrl + f5 실행 단축키 Program.cs > Main() 가장 먼저 실행됨. Form1.cs 보기 > 도구상자를 통해 label, button 등 필요한 도구들을 ..
C#에서 $"name : {name}" 구문은 문자열에 변수를 삽입하는 데 사용됩니다. 문자열 앞에 $ 기호를 사용하면 변수가 문자열에 삽입됩니다. 예를 들어, $"Hello, {name}!" 구문은 "Hello, [name]!"과 같은 문자열을 생성합니다. 여기서 [name]은 변수의 이름입니다. C#에서 문자열을 형식화하는 데 유용한 방법입니다. 이를 통해 코드를 읽고 이해하기 쉽게 문자열을 사용자 지정할 수 있습니다. string name = "han"; string intro = $"Hello, {name}!"; System.Console.WriteLine(intro); // Hello, han! int age = 25; intro = $"my name is {name} and my age is ..
DBConnectionString은 static으로 만들어놓고 사용하는 것을 추천 public static string DBConnectionString() { string connectionString = ConfigurationManager.ConnectionStrings["MssqlContext"].ConnectionString; return connectionString; } ** static, final 차이 static은 클래스 멤버가 클래스 로더에 의해 단 한 번만 생성되며, 모든 인스턴스가 공유함을 나타냅니다. final은 클래스 멤버가 값이 변경될 수 없음을 나타냅니다. SqlCommand cmd = new SqlCommand(); cmd.CommandText = string.Format..
예외처리하기!! [컨트롤러] 리턴타입은 HttpResponseMessage으로 try{ // 객체, 객체안에 변수들 null 검사하기 // throw를 이용해서 개발자가 error발생시킬 수도 있다. } catch(Exception ex){ } finally{ } 1.성공했을 때 Request.CreateResponse(System.Net.HttpStatusCode.OK); 리턴할 객체가 있을 때 Request.CreateResponse(System.Net.HttpStatusCode.OK, 객체); 2.실패했을 때 400 에러 Request.CreateErrorResponse(System.Net.HttpStatusCode.BadRequest, ex.Message); 500 에러 Request.Create..
동일한 컨트롤러에서 get, post, put, delete 메소드를 하나만 쓸 수 있는 건가?? 뷰에서 ajax post를 여러개 만들고, 컨트롤러에서 각각 이름에 맞춰서 [HttpPost]까지 상단에 붙여줬는데 왜 해당 부분이랑 매핑이 안되지??? 했는데, 컨트롤러에서 자바에서 @PostMapping("경로") 써준 것처럼 c#에서는 [Route("경로")]를 써줘야 제대로 찾더라! 디버깅했는데 컨트롤러까지 안들어와서 뭐가 문제지 했는데, route 써서 해결!!