C#/ADO.NET

ADO.NET 비연결 데이타읽기

황기하 2021. 12. 27.
ADO.NET 비연결 데이타 읽기

SQL 데이타를 한꺼번에 클라이언트에 가져온 후
SQL 서버의 연결을 끊는 Disconnected 모드를 이용하기 위해서는
ADO.NET의 SqlDataAdapter클래스를 사용한다.
이를 위한 절차는
먼저 SQL 서버에 연결을 Open하고,
SQL SELECT문을 써서 쿼리를 서버로 보낸 후,
결과를 SqlDataAdapter클래스의 Fill() 메소드를 써서 DataSet 객체에 담으면 된다.
SqlDataAdapter는 가져온 데이타를 메모리상의 데이타 객체인 DataSet에 할당한다.
이 DataSet 객체는 다시 WinForms의 DataGridView 같은
데이타 바인딩 가능한 컨트롤에 연결하여 사용할 수 있다.
즉, DataSet 객체의 테이블 데이타를 기초로 그리드 화면에 데이타를 뿌리는 것이다.
아래 예는 SQL Table에서 데이타를 가져와
비연결 상태의 DataSet 객체를 DataGridView 컨트롤에 바인딩한 예이다.

 

class MySample
{
    string strConn = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;";

    public DataSet GetProduct()
    {
        DataSet ds = new DataSet();

        SqlConnection conn = new SqlConnection(strConn);
        conn.Open();

        string sql = "SELECT * FROM Scores";

        // SqlDataAdapter 초기화
        SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);

        // Fill 메서드 실행하여 
        // 결과를 DataSet을 리턴받음
        adapter.Fill(ds);
        
        conn.Close();
        return ds;
    }
}

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnGetData_Click(object sender, EventArgs e)
    {
        // GetProduct 메서드 호출하여 DataSet 가져옴
        MySample sample = new MySample();
        DataSet dataSet = sample.GetProduct();

        // DataSet을 DataGridView 컨트롤에 바인딩
        dataGridView1.DataSource = dataSet.Tables[0];
    }
}

'C# > ADO.NET' 카테고리의 다른 글

ADO.NET In-Memory DataSet 클래스  (0) 2021.12.27
저장 프로시져 실행  (0) 2021.12.27
SQL 데이타 삭제  (0) 2021.12.27
SQL 데이타 갱신  (0) 2021.12.27
ADO.NET 데이타 추가  (0) 2021.12.27

댓글