PROGRAMMING WORKSHOP

.Net FrameWork,VB.Net | DataSet,DataTable

DataTable,DataSet을 디자인타임에 만들어 활용해보기

앞에서 LINQ이야기를 몇페이지에 걸쳐서 했다
이제 다른 개체를 사용하면서 LINQ를 활용하는 것을 해야 LINQ사용의 내공이 쌓이게 될 것..
그러니 개체중에서 활용도가 가장 높은 DataTable을 시작해보자

DataTable개체는 데이타관리에 있어서 가장 대표적인 개체이다
엑셀의 워크시트가 메모리상에 숨어있는 것으로 생각하시면 쉬울 것이다
DataTable개체는 DataSet이라는 DataTable을 여러개 관리하는 개체의 하위개체이다
여러 설명필요 없이,
한가지 기특한 쌤플을 하나 만들어 보자

모든 개체는 Design Time에 만들기도 하고 코딩을 하여 Run Time에 만들기도 한다
Design Time 의 것을 하나 만들어본후
Run Time 의 것을 만들어 보도록 하자
그림과 같이 새프로젝트의 프로젝트의 아이템추가하기를 하여
DataSet개체를 추가한다



그러면 황당하게 생긴 허허벌판의 시트가 한장 열린다
이것을 어떻게 하라구????!!!
이곳이 여러분이 데이타를 관리할 창고를 짓는 작업장인 것이다
전체 창고는 DataSet개체라고 하고
창고내의 여러분의 생각대로 여러개의 창고를 지을수 있다
아래의 그림과 같이 이미 연결된 DB가 있다면 DB창에서 테이블을 끌어다놓기도 하고
(이때는 해당 DB의 테이블과 같은 구조의 테이블이 만들어진다)



도구상자에서 DataTable아이콘을 끌어다 놓기도 하고, 또 오른쪽마우스메뉴를 사용하여
만들기도 한다는 소리를 한다..

오른쪽 마우스메뉴를 사용하여 아래의 그림과 같이 작은 상자가 만들어지고
이곳에 Column을 추가해 나간다



DB설계를 해보신 분들에게는 하나도 낯섫지 않은 작업이다
이렇게 몇개의 열(Column)을 넣어서 아래와 같이 아주 작은 테이블을 하나 만들었다
회원테이블이라고 치고, 테이블이름을 Members라고 하고
열(Column)은 3개를 삽입하여 하나는 ID열, 다른 하나는 회원이름 Name열
다른 하나는 생일열을 하나만들었다
그리고 모든 개체는 속성창으로 개체의 성질머리를 다루어줘야 한다는 것은 상식일 것이고..
데이타테이블의 열의 중요한 속성은 데이타타입이 필수



아래의 화일에서 각열의 속성처리된 것을 살펴보시도록 하시고
이제 이것을 어떻게 활용해 먹나???!

윈도우창을 열고 메뉴의 DataSource메뉴를 크릭하면 DataSource탐색창이 열린다
위에서 만든 DataSet의 DataTable이 예쁜 아이콘으로 나타난다
날짜형식 열은 카렌다 모양의 아이콘이 있고
String타입 열은 TextBox가 있고



ID열은 자동증가속성을 지정하여 놓아서 입력하지 못한다는 표시(자동입력되니까..)의 아이콘으로
나타난다..
이것을 그냥 마우스로 끌어다가 윈도우폼에 올려 놓으면 된다
끌어놓기전에 아래의 그림과 같이 표현형식을 정하고 옮긴다



옮겨놓으니, 한꺼번에 뭔가 후다닥 자동으로 만들어졌다
위에서 만든 DataSet과 DataTable개체가 폼의 하부 콘트롤 Tray에 놓여지고
Bindingsource라는 개체도 하나 만들어지고
BindingNavigator라는 개체도 하나 만들어졌다



이것은 폼과 DataTable이 야무지게 연결되어 있음을 말한다
폼을 통하여 정보를 넣으면 자동으로 DataTable에 채워지고..연동이 되는 것이다
그리고 BindingNavigator는 데이타의 행의 이동을 추적해준다

이것을 실행시키고
데이타를 입력시키면서 삭제도 하고 또 추가시키면서
몇개를 진행해 보시면..



그것참..괞찮네!!!! 라고 하실수 있을 것이다
데이타창고는 하나 있고, 이것을 관리하는 인터페이스도 순간 만들어 졌고..
히야..이거 거저 먹는 것이네..
그런데 실은 반만 만들어진 것이다
가만있어봐...그럼 폼을 닫았다가, 다시 열면 입력했던 것이 남아있나???
아니다, 사라져 버렸다..
그럼 별것 아니잖아..데이타를 입력하고 편집했으면 어딘가에 보관이 되어야 할 것아닌가??
이제 여기에서 DataSet과 DataTable의 역할이 이해되게 된다..
아하..이놈은 그냥 메모리상에 임시로 만들어지게 되는 것이로구나..
영구히 하드에 보관하려면..다른 하드상의 창고가 있어야 하겠구나??!!
그래서 아래의 그림과 같이 삭제,새로추가버튼을 활성화되어 있지만 저장버튼은
비활성화되게 자동으로 만들면서 설정이 되었다



이제 거저먹는 것은 여기까지이고, 코딩실력을 넣어야 제구실을 하게 된다
저장버튼을 선택하여 해당 속성창을 열어 Enabled 속성을 True로 해준다
요기까지 화일에서 관찰해 보시고,다음 화일에서 제구실을 하게 하자

***[LOG-IN]***