[C# 문법] DataTable 특정 컬럼 값 더하기(Compute)

안녕하세요.

 

오늘은 C# 문법에서 DataTalbe 에 저장되어 있는 데이터들 중에서, 특정 컬럼 값의 Row 데이터들만 가져와서 해당 Row들의 값들을 모두 더해서 반환하는 방법에 대해서 알려 드리려고 합니다.

 

바로 예제 코드를 통해서 어떻게 DataTable의 특정 컬럼의 값들만 가져와서 더하는지 보여 드리도록 하겠습니다.

 

예제 코드
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DataTableSum
{
    class Program
    {
        static void Main(string[] args)
        {
            //DataTable 설정
            CreateDataTable();
        }
 
        /// <summary>
        /// DataTable 생성 및 테스트 데이터 넣기
        /// </summary>
        private static void CreateDataTable()
        {
            DataTable dt = new DataTable();
            CreateColumn(dt);
            AddRow(dt);
 
            //나이 컬럼 값들만 가져와서 총 나이 합 구하기
            Console.WriteLine($"총 나이의 합은 {Total(dt)} 입니다.");
 
        }
 
        /// <summary>
        /// DataTable 컬럼 추가
        /// </summary>
        private static void CreateColumn(DataTable dt)
        {
            dt.Columns.Add("Name"typeof(string));
            dt.Columns.Add("Age"typeof(int));
        }
 
        /// <summary>
        /// DataTable Row 추가
        /// </summary>
        private static void AddRow(DataTable dt)
        {
            dt.Rows.Add("범범조조"24);
            dt.Rows.Add("아이유"23);
            dt.Rows.Add("김성주"11);
            dt.Rows.Add("안정환"54);
            dt.Rows.Add("박명수"23);
            dt.Rows.Add("유재석"56);
            dt.Rows.Add("조세호"37);
            dt.Rows.Add("정형돈"83);
            dt.Rows.Add("하하"22);
            dt.Rows.Add("노홍철"12);
        }
 
        /// <summary>
        /// 특정 컬럼만 가져와서 해당 Row 데이터 더하기
        /// </summary>
        /// <param name="dt"></param>
        private static int Total(DataTable dt)
        {
            int sum = 0;
 
            sum = Convert.ToInt32(dt.Compute("Sum(Age)"""));
 
            return sum;
        }
    }
}
 
cs

 

실행 결과

위와 같이 학생들의 총 나이 합이 제대로 구해져서 출력되는 것을 확인하실 수 있습니다.

 

감사합니다.^^

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY