C#

(C#) LocalDB/SQLServer에서 데이터 가져와서 한 행씩 출력하기

코딩ABC 2023. 4. 19. 06:53
반응형

LocalDB(또는 MS SQLServer)에 연결해서, 테이블의 데이터를 가져와서 한 행씩 출력하는 코드입니다.

LocalDB와 MS SQL Server는 연결 문자만 다르고, 나머지 코드는 똑 같습니다.

 

예제 데이터베이스는 이 블로그에서 "예제 데이터베이스"로 검색해 보기 바랍니다.

 

프로젝트 생성

  • Windows Forms 앱(.NET Framework)
  • 리스트 박스 1개, 버튼 1개를 배치하고 버튼에 아래의 코드를 작성합니다.
using System;
using System.Windows.Forms;
using System.Data.SqlClient;

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

        private void button1_Click(object sender, EventArgs e)
        {
            string connectionString = @"Server=(LocalDB)\MSSQLLocalDb;database=haksa;integrated security=true";
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();

            string sql = "select * from student order by hakbun";
            SqlCommand cmd = new SqlCommand(sql, conn); 
            SqlDataReader dr = cmd.ExecuteReader();

            listBox1.Items.Clear();
            while(dr.Read())
            {
                listBox1.Items.Add(dr["hakbun"].ToString() + "\t" +
                    dr["name"].ToString() + "\t" +
                    dr["tel"].ToString());
            }
            dr.Close();
            conn.Close();
        }
    }
}

(C#) LocalDB/SQLServer에서 데이터 가져와서 한 행씩 출력하기

 

위 코드를 using 구문을 사용해서 아래와 같이 코딩할 수 있습니다. 더 추천되는 코드입니다.

using System;
using System.Windows.Forms;
using System.Data.SqlClient;

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

        private void button1_Click(object sender, EventArgs e)
        {
            string connectionString = @"Server=(LocalDB)\MSSQLLocalDb;database=haksa;integrated security=true";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();

                string sql = "select * from student order by hakbun";
                SqlCommand cmd = new SqlCommand(sql, conn);

                using (SqlDataReader dr = cmd.ExecuteReader())
                {

                    listBox1.Items.Clear();
                    while (dr.Read())
                    {
                        listBox1.Items.Add(dr["hakbun"].ToString() + "\t" +
                            dr["name"].ToString() + "\t" +
                            dr["tel"].ToString());
                    }
                }
            }
        }
    }
}

 

 

반응형