65.9K
CodeProject is changing. Read more.
Home

Enum To Datatable

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2 votes)

Jan 28, 2014

CPOL
viewsIcon

27548

Enum to datatable

A Comprehensive Utility to Play with Enum

I am often asked by developers in my team to write a code that can convert the enums to a collection structure which will be useable as a data source to any ASP.NET and/or HTML control and would be exposeable by Web Services. However, Enums can also be used as a data source to any server side container controls, the problem is to use them in HTML controls with JSON format.

We have some utilities that can convert the numerous data structures to JSON format and DataTable is one of them. To utilize such structure in Restful Services, I decided to write a code that converts any Enum Type to DataTable. It is a small but comprehensive utility which makes the developer's life easy. Hope you like it.

Enum to DataTable Convertor Function

public DataTableEnumToDataTable(Type enumType)
        {
            DataTable table = newDataTable();
   
            //Column that contains the Captions/Keys of Enum        
            table.Columns.Add("Desc", typeof(string));
            //Get the type of ENUM for DataColumn
            table.Columns.Add("Id", Enum.GetUnderlyingType(enumType));
            //Add the items from the enum:
            foreach (string name in Enum.GetNames(enumType))
            {
                //Replace underscores with space from caption/key and add item to collection:
                table.Rows.Add(name.Replace('_', ' '), Enum.Parse(enumType, name));
            }
  
            return table;
        }

Method Calling

DataTable dT = EnumToDataTable(typeof(ENUM_CURRENCY));

Conclusion

I love to write such tiny utilities which enable my team to smoothly fulfill the task in a timely manner. I always enjoy writing such utilities because these make my work enjoyable to me.