본문 바로가기

Test Code/C#

[DataTable] DataTable.DefaultView.ToTable 함수

DefaultView.ToTable


DataTable에서 필요한 컬럼을 추출하여 새로운 DataTable을 만듭니다.




using System;

using System.Data;


namespace Test_DataTable

{

    class Program

    {

        static void Main(string[] args)

        {

            DataTable table = new DataTable();

            table.Columns.Add("COL_1");

            table.Columns.Add("COL_2");

            table.Columns.Add("COL_3");


            table.Rows.Add("a", "10", "Asia");

            table.Rows.Add("a", "10", "Asia");

            table.Rows.Add("a", "20", "Euro");

            table.Rows.Add("b", "30", "America");

            table.Rows.Add("b", "30", "Oceania");


            DataTable retTable = null;


            Console.WriteLine("원본 DataTable");

            foreach (DataRow row in table.Rows)

            {

                Console.WriteLine("{0}\t{1}\t{2}", row[0], row[1], row[2]);

            }


Console.WriteLine("\n새로운 DataTable 생성");

            retTable = table.DefaultView.ToTable(false, "COL_3", "COL_2");

            foreach (DataRow row in retTable.Rows)

            {

                Console.WriteLine("{0}\t{1}", row[0], row[1]);

            }


Console.WriteLine("\n중복된 행이 제거된 DataTable 생성");

            retTable = table.DefaultView.ToTable(true, "COL_1", "COL_2", "COL_3");

            foreach(DataRow row in retTable.Rows)

            {

                Console.WriteLine("{0}\t{1}\t{2}", row[0], row[1], row[2]);

            }


            Console.ReadKey();

        }

    }

}