loading

프로그래밍/C#

C# dataGridView의 선택한 Row의 데이터 가져오기

침착곰 2021. 4. 15. 14:39
반응형

안녕하세요

C#에서 dataGridView의 선택한 Row의 데이터를 가져오는 방법에 대해서 알아보겠습니다

제가 작성한 코드에서는 버튼을 클릭하면 dataGridView에서 선택한 Row의 데이터를 가져와 TextBox에 보여주는 형식으로 구현을 했습니다

 

1. 디자인

 - 그리드, 버튼, 텍스트박스를 밑의 이미지처럼 그렸습니다

 

 - 그리드에 바인딩할 데이터테이블을 만들었습니다

  프로젝트에 DataSet을 추가하고 DataSet에 테이블을 추가합니다

  테이블에는 테스트할 데이터인 성명과 나이 컬럼을 추가하였습니다

 

 - 마지막으로 디자인에서 그리드를 선택하고 DataSet의 테이블을 바인딩합니다

  바인딩 후에 그리드 속성에 들어가서 Header이름을 알맞게 변경합니다

 

여기까지 디자인을 모두 그렸습니다.

다음에는 데이터 가져오기 버튼을 눌렀을 때 그리드의 선택된 Row의 데이터를 텍스트박스에 넣어주는 소스에 대해서 알아보겠습니다.

 

2. 최종 소스

DataGridView2.zip
0.25MB

 

3. 소스 설명

 CurrentRow를 사용해서 현재 DataGridViewRow로 가져옵니다

 DataGridViewRow를 이제 텍스트박스에 넣기위한 DataRow로 다시 변경합니다

 DataRow의 컬럼 값을 가져와서 텍스트박스에 세팅합니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace DataGridView2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        // 데이터 가져오기 버튼 클릭 이벤트
        private void btnData_Click(object sender, EventArgs e)
        {
            // 데이터가 없는 경우 return
            if (this.dataGridView1.RowCount == 0)
                return;
 
            // 현재 Row를 가져온다.
            DataGridViewRow dgvr = dataGridView1.CurrentRow;
 
            // 선택한 Row의 데이터를 가져온다.
            DataRow row = (dgvr.DataBoundItem as DataRowView).Row;
            
            // TextBox에 그리드 데이터를 넣는다.
            txtName.Text = row["NAME"].ToString();
            txtAge.Text = row["AGE"].ToString();
 
        }
    }
}
 
cs

 

4. 결과 화면

 

여기까지 dataGridView의 현재 Row의 데이터를 추출하는 방법에 대해서 알아봤습니다

C# 개발에 도움이 되셨으면 좋겠습니다

반응형
그리드형