본문 바로가기
윈폼 CRUD mssql에 기존에 만들어둔 test 스키마에 books 테이블 추가하고 책 데이터 넣어주기CREATE TABLE BOOKS ( BOOKNO int PRIMARY KEY, NAME varchar(50), CODE varchar(50) ); INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (1, '아기돼지3형제', '111111');INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (2, '톰과제리', '111112');INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (3, '인어공주', '111113');INSERT INTO .. 2024. 9. 25.
mssql 윈폼 연동 mssql 설치 후 데이터베이스에 새 데이터베이스를 추가한다 • db 연결 데이터베이스에 우클릭해서 새 데이터베이스를 만들어주고 .cs 파일에서 sqlconnection으로 mssql에 접속한다  //db연동을 위한 클래스 private SqlConnection sqlConnection = null; //ip, 포트, db이름, id, pw 순으로 connectionstring에 삽입 private string connectionString ="SERVER=127.0.0.1,1433;DATABASE=test;UID=sa;PASSWORD=1111";  private void btn1_Click(object sender, EventArgs e) .. 2024. 9. 25.
사용자 정의 컨트롤러 프로젝트에 사용자 정의 컨트롤을 추가 추가한 도구 상자에서 원하는 위젯을 가져다가 넣어두고 빌드하면윈폼창의 도구상자에서 만들어둔 컨트롤을 가져다가 사용 가능하다 이런 식으로 만들어 둔 걸 윈폼에서 사용자 정의 컨트롤을 가져와서 사용하려고 할때 접근 지정자 문제로 바로 컨트롤의 위젯에 접근은 불가능하다유저 컨트롤러에서 프로퍼티로 접근할 수 있게 해주자 public string label1text { get { return label1.Text; } set { label1.Text = value; } .. 2024. 9. 21.
단일 프로세스 멀티 프로세스 안하고 단일 프로세스 하는 이유 같은 프로그램 여러개 띄워서 충돌하거나 사용하는 사람이 작업중인 프로그램이 뭔지 햇갈려서 실수하는걸 방지 • Mutex 공유 자원을 한 프로세스가 단독으로 사용 가능하게 만들기 위해 뮤텍스를 사용Program.cs 의 실행 부분에 뮤텍스를 설정해 프로그램을 한개만 실행 가능하게 하는 코드 bool mutexLock = false; Mutex mutex = new Mutex(true, Assembly.GetEntryAssembly().FullName, out mutexLock); //이미 동일 프로세스가 생성되어있는지 체크하고 없을때만 새 프로세스 생성 if (mutexLock ==.. 2024. 9. 21.
이벤트 지금까지 ui배치 후 더블클릭 등으로 이벤트를 등록해서 사용했는데어떻게 이렇게 한 것 만으로 되는지 자세하게 알아보자 버튼의 클릭 이벤트를 처리할때 click 속성은 이벤트 핸들러 이고, 이벤트 핸들러는 델리게이트 타입이다.그러므로 델리게이트 문법을 사용해서 해당 동작을 할때 발생시킬 메서드를 등록할 수 있다 기존 델리게이트 문법보다 훨씬 편하게클릭 동작할때 얘도 실행해줘 하는 형태로 전달해주면 아래와 같은 경우에는 btn1이 뜬 후 확인하면 clicked2도 팝업된다 - 이벤트 핸들러 원형void 타입이기에 전달해주는 메서드 또한 void 타입으로 전달해줘야 한다.. 그렇지 않으면 당연히 빨간줄뜸public delegate void EventHandler(object sender, EventArgs e.. 2024. 9. 21.
윈폼 datatable, dataset, datagridview • datatable 사용datagridview 안에 데이터테이블을 넣어서 표현해보자form에 datagridview를 만들어서 넣어두고 폼이 초기화될때 데이터테이블이 들어가게 하는 방식private void Form1_Load(object sender, EventArgs e){ DataTable dt = new DataTable(); DataColumn dc = new DataColumn(); dc.ColumnName = "int"; dc.DataType = typeof(Int32); DataColumn dc2 = new DataColumn(); dc2.ColumnName = "name"; dc2.DataType = typeof(string); dt.Colum.. 2024. 9. 21.
윈폼 시작하기 2 (판넬, 스플리터, 테이블 레이아웃 판넬, 툴스트립) • toolstrip 이미지 있는 버튼이나 다양한 UI을 추가, 당연히 추가한 버튼 등에 이벤트 등록 가능  • panel & spliterspliter를 panel과 함께 사용해서 작업 영역을 구분할때 사용속성에서 dock 속성을 이용해서 어디를 구분할지 설정패널도 패널 속성의 dock을 이용해서 배치해서 작업영역을 설정하고 스플리터로 경계면을 설정하는걸로 이해했다 •  table layout panel   테이블 레이아웃 우상단 버튼을 눌러서 행/열의 크기나 갯수를 변경 가능하다테이블 안에 있는 오브젝트들은 columnspan속성과 rowspan 속성을 이용해서 몇 칸을 차지할건지 설정 가능하다 2024. 9. 21.
윈폼 시작하기 (이벤트, MDI, 로그인) 윈폼을 하는 이유유니티로 하는 프로젝트를 몇번 해보면서 닷넷.. C#.. 해볼까? 라는 생각을 하게 되었고기존에 해본 QT와 같은 GUI 기반에 웹 개발, 스마트팩토리나 iot 분야 등 다양한 분야로 사용 할 수 있는 프레임워크라 생각해 기술스택 확장, 직업선택의 폭을 넓히기 위해 윈폼을 공부해보자!복습을 위해 기록해두면 미래의 내가 보고 복습할거라 믿는다 비주얼 스튜디오에서 윈폼 으로 프로젝트 만들어서 시작윈폼 창에서 도구 상자에서 오브젝트 가져다가, 해당 오브젝트(버튼,라벨) 속성에 보이는 이벤트를 코드로 정의해서발생시킬 수 있다  button1.Click += MyButton_Click; private void MyButton_Click(object sender, EventArgs e).. 2024. 9. 21.