2012년 12월 30일 일요일

C# SQL 조회 SqlDataReader




C# SqlDataReader 클래스
SqlDataReader 클래스는 SQL Server와 연결을 유지한 상태에서 한번에 한 레코드(One Row)씩 데이타를 가져오는데 사용된다. SqlCommand.ExecuteReader()로부터 리턴되는 SqlDataReader 객체는 (파일의 BOF와 같이) 첫 Row 이전에 포인터를 위치시키기 때문에 개발자는 SqlDataReader의 Read()메서드를 써서 처음 Row로 이동해 주어야 한다. DataReader는 하나의 Connection에 하나만 Open되어 있어야 하며, 사용이 끝나면 Close() 메서드를 호출하여 닫아 준다. 

예제

public void Sample()
{
    StringBuilder sb = new StringBuilder();
    using (SqlConnection conn = new SqlConnection(strConn))
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = "SELECT * FROM Product";
        
        // SqlDataReader 객체를 리턴
        SqlDataReader rdr = cmd.ExecuteReader();                

        // 다음 레코드 계속 가져와서 루핑
        while (rdr.Read())
        {
            // C# 인덱서를 사용하여
            // 필드 데이타 엑세스
            string s = rdr["Name"] as string;
            sb.Append(s);
        }
        // 사용후 닫음
        rdr.Close();

    }
    //... sb 데이타 사용
}

댓글 없음: