지난 부분에 올렸던 부분의 후속부분으로 전체데이터를 읽어오지 않고 특정한 부분만 읽어올 경우는
어떻게 하면 될까요?

지난번처럼 GridView와 버튼하나 올려놓고 버튼을 더블클릭해서 아래와 같이 코딩합니다.


    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Connection 객체생성
        Dim strConn As String = "server=(local);database=AdventureWorks;uid=testman2;pwd=123645"
        Dim Conn As New SqlConnection(strConn)

        'Connection 객체열기
        Conn.Open()

        'Command 객체 생성
        Dim strSQL As String = "SELECT * FROM Person.Address where PostalCode= @PostalCode"
        Dim Comm As New SqlCommand(strSQL, Conn)

        'Parameter 객체 생성해서 Command 객체에 추가하기
        Dim param As New SqlParameter("@PostalCode", Data.SqlDbType.VarChar)
        param.Value = "98055"
        Comm.Parameters.Add(param)

        'DataReader 생성
        Dim reader As SqlDataReader = Comm.ExecuteReader

        'DataReader를 이용해서 DataView 컨트롤에 바인딩하기
        GridView1.DataSource = reader
        GridView1.DataBind()

        'DataReader와 Connection 닫기
        reader.Close()
        Conn.Close()

위에서 표시한대로 Command객체에서 SP(저장 프로시저)를 이용해서 특정한 값들을 불러오는 것처럼
SELECT문을 입력하고  Parameter객체를 생성한다음 Command객체에 추가해 주어 원하는 결과를 얻을 수 있음.

원래 AdventureWorks DB의 Person.Address테이블의 총레코드수는 19614이나 위의 예제에서는
PostalCode=98055인 것만 선택하여 GridView 보여지도록 하였다.

실행결과

사용자 삽입 이미지
결과적으로 115의 레코드만이 검색되어 뿌려주는 것을 알 수 있다.

Posted by 원철연(체르니)
,