C#/C#, mysql POS 만들기

C# WinForms / mysql으로 포스기 만들기 (3)

펭킹 2020. 11. 11. 21:47

이번 시간에는 저번 시간에 만든 상품 판매 창(C#)과 MySQL을 연동하여 라벨에 접속 여부를 나타내겠습니다.

조금 어려운 내용이라 이해가 안된다면 본문을 여러 번 읽어보시는 걸 권장합니다.

한 호흡에 담기엔 긴 내용이지만 잘 따라오실 거라 믿습니다.

 

MySQL을 실행시켜 로그인한 후 새 스키마를 생성합니다.

저는 pos_dataset이라고 생성하겠습니다.

 

Apply를 눌러 DB를 생성한 후 테이블을 생성해줍니다.

 

 

Table에서 Create Table을 통해 새 테이블을 생성합니다.

이제 판매내역창의 목업을 다시 보겠습니다.

 

판매내역창

 

왜 판매창이 아닌가에 대한 의문을 가지시는 분들이 있으실 거라 생각합니다.

판매 창에서 데이터 그리드 뷰의 물건을 구매하게 되면 그 데이터는 판매내역의 DB에 들어가기 때문입니다.

데이터 그리드 뷰 1개당 1개의 DB를 생성하는 것은 아닙니다.

 

다시 설명으로 돌아와서 다음과 같은 6가지의 열의 정보를 입력해야 됩니다. (열쇠 [열은 세로]로 외우시면 편합니다.)

기본키는 고유번호로 지정하겠습니다.

기본키의 기본 성질은 다른 키값들과 구분되는 단 하나의 값입니다. 판매내역 특성상 물건의 이름은 중복이 발생하고 나머지 정보는 물건의 특성을 나타내지 못하여 따로 고유번호를 생성하였습니다.

나머지 열의 정보는 기본적인 물건의 정보이고, 식별번호는 한번에 물건을 살 때 여러 개의 물건을 살 때 구분해주는 기준점으로 생각하고 설정했습니다. 여러분은 더 좋은 방법으로 다르게 만드시는것도 괜찮을 것 같습니다. 

 

이제 이것을 DB로 바꿔서 만들어 보겠습니다. 테이블의 이름은 sales_tb로 하겠습니다.

고유식별번호는 no, 이름은 name, 가격은 price, 개수는 count, 총가격은 total, 식별번호는 c_num(count_num 축약)으로

작성하겠습니다.

 

기본키인 no는 PK(PrimaryKey),NN(NotNull)과 AI(Auto Increase)를 체크해줍니다.

그리고 데이터 타입은 이름(name)은 문자로 받으니 VARCHAR로 설정해주시고 나머지는 숫자로 받으므로  INT로 설정합니다.

Apply를 통해 테이블을 생성합니다.

 

다음과 같은 테이블이 생성되었습니다.

이제 이 테이블과 C#을 연동하겠습니다.

비쥬얼 스튜디오에서 윈폼 창을 두 번 클릭합니다.

 

다음과 같은 코딩창이 뜨게 됩니다. 개발자는 이 곳에서 코딩을 통해 기능들을 구현합니다.

이후 설명 할 때 이곳은 코딩 창, 사용자에게 보이는 창은 윈폼 창이라고 하겠습니다.

먼저 C#과 MySQL을 연결하고 상태를 라벨을 통해 사용자에게 보여주겠습니다.

 

 

윈폼 창에서 다음과 같이 라벨을 원하는 위치에 이동시킨 후 기능을 구분할 수 있게 server라고 적어줍니다.

코딩 창으로 참조추가를 통해 MySQL을 추가하겠습니다.

 

MySQL을 검색하여 MySql.Data를 추가합니다.

코딩 창으로 돌아와 선언문 마지막줄에 다음과 같은 문장을 추가합니다.

 

using MySql.Data.MySqlClient;

 

이제 이 프로젝트에서는 MySQL의 기능을 사용할 수 있습니다.

다른 윈폼 창에서도 같은 기능을 사용하니 윈폼 창이 추가될 때마다 추가해주시면 됩니다.

마지막으로 이전에 만든 라벨(server)에 DB와 연결여부를 표시하겠습니다. 

 

private void Form1_Load(object sender, EventArgs e)
{
	MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;username=root;password=****;");
	connection.Open();
	if (connection.State == ConnectionState.Open)
	{
		label6.Text = "Connected";
		label6.ForeColor = Color.Black;
	}
	else
	{
		label6.Text = "DisConnected";
		label6.ForeColor = Color.Red;
	}
}

 

MySqlConnection에 자신의 MySQL정보를 입력합니다.

저의 정보와 여러분의 정보는 다르니 꼭 자신의 MySQL정보를 확인 후 입력해주시길 바랍니다.

if else문을 통해 접속에 성공했다면 라벨에 검은색으로 Connected를 표시하고 그렇지 않다면 빨간색으로 DisConnected로 표시합니다.

접속에 성공했다면 저장 후 시작을 통해 실행하거나 F5를 통해 프로그램을 실행할 수 있습니다.

 

이렇게 프로그램이 실행 된다면 성공입니다.

오늘은 MySQL과 C#을 연동하여 라벨에 접속 여부를 나타냈습니다.

다음 시간에는 텍스트박스 안의 정보를 데이터 그리드 뷰에 삽입하고, 데이터 그리드 뷰의 데이터를 테이블에

저장하는 방법을 알아보겠습니다.