PROGRAMMING WORKSHOP

VB.Net |
DataTable이 왜 신통방통한가?

DataTable개체는 참 신통방통하다..
DataGridView에서 정보를 추가 입력하거나 편집하면
그대로 DataGridView에 동적으로 반영된다
물론 DataSource의 종류에 따라서 약간의 코딩만 해주면 된다
텍스트화일을 DataSource를 사용하기는 별로 이지만
좀 손을 보면 훌륭한 데이타저장창고가 된다

아래의 그림과 같이 프로젝트내에
정보화일을 텍스트화일로 하나 만들어서 넣고



그리고 프로젝트창내의 화일을 오른쪽마우스로 크릭하여 속성창으로
이동한다
속성창에서 반드시 이 부분을 설정해준다



프로젝트에 포함되는 정보중에는 실행화일로 컴파일 되는 화일들이
있는 반면에 데이타화일이 있다
지금 저장한 것은 데이타화일인 것이다
프로그램이 실행되는 데는 아무 상관이 없는 정보를 보관하는 화일인 것이다
텍스트화일은 물론 그림화일 같은 것도 정보화일이다
이런 것들은 컴파일 되지 않고 그대로 사용자컴퓨터에 옮겨진다
억세스 DB화일 같은 경우도 마찬가지다
물론 써버에 연결하지 않은 화일로 된 SQL DB화일도 마찬가지다..
써버에 연결하지 않은 사용자만 사용하는 정보화일..로컬데이타화일이다
여기에서 속성 Copy To OutPut Directory라고 한 것은
개발중에 데이타가 바뀌면 Bin디렉토리로 정보화일이 복사되어
넘어가게 할 것인가, 말 것인가를 묻는 것이다
Bin디렉토리의 내용이 프로그램을 사용자컴퓨터에 세팅할때
넘어가게 되는 것이다
그래서 개발중디버깅하면서 정보가 바뀌면 바뀐내용이 위의 프로젝트창
속에 있는 화일에는 아무 변화가 없고 Bin폴더속의 Debug폴더에 있는
내용이 바뀌어 넘어가는 것이다

폼에 버튼을 만들고 버튼의 Click이벤트프로시져에
텍스트화일을 읽어 들여서 텍스트내용을 DataTable에 채워넣고
DataTable을 DataGridView의 DataSource속성에 그림과 같이 전달하면



아래의 그림과 같이 DataGridView 에 텍스트화일 내용이 옮겨졌다



실행시키고 아래의 그림과 같이 정보를 추가시킨다



그리고 닫은후 소루션창에서 아래의 그림과 같이 하여
Bin디렉토리의 Debug폴더.. (프로젝트내의 화일이 아닌) sampledata.txt화일을 열어보면



와 같이 데이타원본에 정보가 저장되었음을 볼 수 있다
System.Data.DataTable개체는 메모리속의 내용이 폼과
연동이 되어 자동으로 움직인다..
저장버튼을 크릭하면 Form의 DataGridView의 것이 아닌
DataTable개체의 내용을 텍스트원본에 옮겨주면 된다
물론 DataGridView의 내용을 읽어서 보낼수도 있고 방법은 많지만
DataTable이 메모리상의 가장 접근하기 좋은 것이니
이 친구와 친해지면 되는 것이다
프로그래머는 눈에 보이는 개체보다는 뒤에 숨어있는 개체들과
친해져야 한다
도대체 뒤에 숨어서 열심히 일하는 녀석들이 어떤 녀석들인지
알아보는 재미가 .Net FrameWork를 탐구하는 즐거움이다..
묘하게 숨겨 놓았군!!!라는 감탄을 하면서..!!

실은 위의 것은 원리를 보기 위한 것이고..
데이타베이스와 연동이 될때 진정한 파워가 나온다..
몇페이지 가다 보면 데이타베이스가 시작될 것이니..
한페이지, 한페이지, 관심갖고 보시면 새로운 세상이 열린다
참..Visusal Studio 는 Express버전은 무료이니..꼭 설치하셔야 할 것이고..

***[LOG-IN]***


위의 화일을 실행하면서
숫자를 입력하는 열에 문자를 넣거나 하면 에러가 날 것이다
이유는 DataTable개체를 만들때 열의 데이타타입을 설정하였던 것이다
숫자를 설정했는데 문자를 넣으면 당연히 에러가 나는 것을
DataTable개체가 통제하는 것이다