본문 바로가기

Programming/VB.Net

DataAdapter, DataSet, DataTable, DataRow 설명

1) 데이터 어답터

    -> 보통 SQL문을 사용하게 되는데,

        DB에서 가져오려는 데이타 모음을 정의 한다고 생각 하면 될 것 같습니다

        이 데이타 모음에는 사용하는 SQL 문에 따라서 여러형태가 될 수 있겠죠,

 

        - Dim adapter = New SqlDataAdapter("select * from Test", Conn)  

        - Dim adapter = New SqlDataAdapter("select 학번 from Test", Conn)  

 

        위 예에서 처럼 특정 테이블을 가져오거나, 특정 컬럼만을 가져 올 수도 있고,

        또는, 테이블 조인된 형태의 특정 컬럼들의 조합인 데이타 모음이 될수도 있는 거구요 

        아무튼 이러한 데이타 모음을 정의 해서

        실제 DBMS와 데이타셋 과의 중계 역활을 한다고(아답터 라는 말에서 의미하듯이)

        생각 하시면 쉽게 이해 되리라 생각 합니다.

 

2) 데이타셋

    -> 데이터 아답터를 이용해서 가져오는 데이타 모음(Set)을 보관하는 것이라 생각하시면 됩니다.

        데이타셋은 데이타어답터에서 가져오는 여러 형태의 데이타 모음을 보관하는 것이기 때문에

        데이타셋 역시, 여러 형태로 데이타를 보관할 수 있는 것 입니다.

        특정 테이블을 보관 할 수 도 있고, 특정 테이블에 특정 컬럼을 보관 할 수 도 있게 되는 거죠,

        또한, 테이블 조인된 형태의 데이타 모음을 보관 할 수도 있다는 것 입니다.

        데이타셋의 특징은 여러가지 데이타 모음을 한 데이타셋에서 함께 보관할 수 도 있다는 것 입니다.

 

        Dim ds = New DataSet()

        Dim adapter = New SqlDataAdapter("select * from Test", Conn)  

        adapter.Fill(ds, "PbsInf") 

 

        adapter = SqlDataAdapter("select 학번 from Test", Conn)  

        adapter.Fill(ds, "hakbun") 

 

        이런식으로 처리 한다면

        ds 라는 데이타셋에는 "PbsInf"라는 데이타모음과 "hakbun"이라는 데이타 모음이 함께 있게 되는 거죠

        여기에서 "PbsInf" 나 "hakbun"을 데이타테이블이라 할 수 있습니다.

 

        위와 같이 데이타셋에는 여러 데이타 모음을 보관하게 됩니다.

        그것이 테이블이 될지 조인된 컬럼들의 모음이 될지는 아답터에서 지정한 형태가 될거구요

 

 

3) 데이타테이블

    -> 데이터셋에서 구성(보관) 되어 있는 "PbsInf"나 "hakbun" 과 같은 데이타 모음들 중에서

        특정 조건을주거나, 해당 데이타모음을 지정해서 데이타테이블로 구성할 수 있습니다.

 

        Dim dt As DataTable = ds.Tables.Add("PbsInf")

        이것은 "PbsInf" 에서 검색된 내용을 

        필터링 해서 데이타테이블을 만들수도 있습니다. 

        즉, 데이타셋에서 여러 데이타 모음 중에서 필요한 데이타 모음을 선택해서,

        데이타테이블을 만드는 것이 될 것 입니다.

 

4) 데이타로우

   -> 데이타테이블에서 특정 Row를 뽑아 사용할 수 있습니다.

        

       Dim cRow As DataRow() = dt.rows(2)

 

       위와 같이 특정 Row를 선택해 온다는 거죠

 

       다음으로는 "조건을 지정해서"(Where절을 사용한다고 생각하시면)

       데이타테이블에서 특정 조건의 Row들을 뽑아 올수 도 있다는 것 입니다.

 

       Dim dr As DataRow() = dt.Select("국어점수 > 50", "학번 ASC", DataViewRowState.CurrentRows)

       위와 같이 특정과목 점수, 학번 기준 정렬 등 검색 조건과 정렬 기준을 첨가 해서

       데이타 로우를 구성할 수 있다는 거죠


출처 : 데브피아 VB.NET 마을