본문 바로가기
공부/C#

C# 윈폼(WinForm)에서 데이터그리드뷰(DataGridView) - 2. 데이터그리드뷰에 데이터 넣기

by ding9 2012. 12. 23.

 


이전 글 2012/12/22 - [공부/C#] - C# 윈폼(WinForm)에서 데이터그리드뷰(DataGridView) - 1. 설정 에 이어서 설정한 데이터 그리드뷰에 데이터를 넣어 보겠습니다.

 

여기서 부터는 코딩이 들어가야 됩니다.

 

우선 용어에 대한 정리부터...


데이터그리드뷰(이하 DGV)의 데이터를 표현하기 위해서는 행과 열, 가로와 세로에 대해서 알아야 됩니다.


행과 가로가 같은 의미이고 열과 세로가 같은 의미이며 C#의 예약어는 Row, Column입니다.


값을 추가하는 방법은 dataGridView1.Rows.Add 와 dataGridView1.Columns.Add 가 있는데 편한것을 사용하면 되지만 데이터를 구분하거나 보통 입력하는 방식이 가로로 전체 입력을 한 후 행을 추가하기때문에 여기에서는 dataGridView1.Rows.Add를 쓰도록 하겠습니다.


DGV의 데이터를 표현하는것의 기본은 string이므로 DGV에 넣어줄 데이터를 임시로 가지고 있을 데이터형은 string을 기본으로 합니다.

 

참고로 제가 하는 것이 FM이나 정확한 방법은 아니니 DGV를 사용하는데 참고자료로만 사용하시길 바랍니다.

 

 



데이터를 폼이 생성될때 기본적으로 데이터를 넣어주는 부분을 간단히 구현해보겠습니다.

 

2개의 string배열 변수를 선언해서 총 10개의 행이 발생하도록 한 소스입니다.

 

사진파일이니 드래그 하거나 오른클릭 안되니 파일 받아서 보시길...

 

 

위 그림에서 아래 data3가 선언 되는 부분은 DGV의 데이터 표현을 보여주기 위해서 예제로 적어놓은 것인데요.

 

아래 실행화면을 보시면 바로 딱 아시게 될것입니다.

 

위 그림 처럼 맨 마지막 행을 보시면 0, 1, 2, 3, 4까지만 표현되는걸 볼 수 있습니다. DGV는 데이터가 많던 적던 행 추가할 때는 자신이 필요한 갯수보다 작으면 나머지는 값이 들어가지 않으며 필요한 갯수보다 많으면 필요한 갯수를 제외한 나머지는 버려지는 것을 볼 수 있습니다.

 

따라서 설계할때 참고하시라고 써놓은 것임을 알려드립니다.

 

이러한 DGV의 특성(?) 을 참고해서 파일에서 불러와서 DGV에 가져다 쓰고 할 수 있습니다.

 

위의 방법은 처음에 그냥 프로그래머 마음대로 값을 넣어준 것이고..

 

아래 방법은 파일을 이용해서 파일을 읽고 저장하는 방법에 입니다.

 

먼저 파일저장불러오기를 쓰기 위해서 using System.IO;을 맨위에 추가를 합니다.

 

이것은 아래 소스에 사용되는 FileInfo를 사용하기 위해서 추가합니다.

 

그리고 디자인 화면으로 가서 버튼의 text를 '저장'으로 바꾸고 더블클릭을 하여 Click이벤트를 발생시킵니다.

 

파일에 저장하고 읽어오는 방법을 생각해야하는데 시, 분, 상태, 밝기 순이므로 위에서 썻던 스케줄을 사용합니다.

 

0, 0, OFF, 0 , 8, 0, ON, 10, 20, 0, OFF, 0 ...

 

데이터 사이에 구분은 여러가지가 있으니 자신에게 맞는 걸을 사용하도록 하고 여기서는 그냥 공백을 쓰도록 하겠습니다.

 

먼저 프로그램 시작시 스케줄이 저장된 파일의 유무, 파일이 있으면 데이터 유무에 대한 소스코드를 구성합니다.

 

 

실제 첨부소스에서는

InitializeComponent();

string strFile = "test.txt";

 

이 두 라인 사이에 첫번째 예의 소스코드가 들어가 있습니다.

 

그리고 아까 추가한 버튼 click이벤트는 아래와 같습니다.

 

 

이상태에서 실행을 하면 ...

 

처음엔 test.txt파일이 없기때문에 기본 스케줄이 들어간 창이 뜨며 test.txt파일이 생성이 됩니다.

 

스케줄 변경을 하고 저장을 누르면 빈파일만 존재하므로 현재 변경된 스케줄이 저장됩니다.

 

프로그램 종료후 다시 실행하면 변경된 스케줄이 DGV에 들어간것을 보실수 있습니다.

 

위의 소스에서 Write와 WriteLine이 있는데 두개의 가장 큰 차이점은 개행문자를 포함하는냐 아니냐 입니다. Line이 개행문자가 포함됩니다.

 

test.txt파일 경로는 아래그림과 같습니다.

 

 

저장후 파일에 저장된 모습은 아래와 같습니다. 

 

 

저는 마지막 스케줄만 20-> 21로 변경하여 저장해서 다시 실행하니 아래와 같이 나옵니다.

 

사용된 파일 첨부합니다.

 

WinformDataGridViewEX.zip

 

이번엔 DGV에 데이터를 넣고 저장하고 불러오는 방법까지 알아봤습니다.

 

다시한번 말씀드리지만 이 방법은 저만의 방법이지 반드시 맞는 방법은 아님을 알려드립니다.

 

 

도움이 되셨다면 추천 부탁드리구요...

 

궁금한 점이나 틀린부분이 있다면 댓글로 달아주시면 감사하겠습니다.

 

다음번에는 DGV의 셀 속성을 바꿔 사용하는 것을 해보겟습니다.

 

반응형

댓글