Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

Enum To Datatable

5.00/5 (2 votes)
28 Jan 2014CPOL 27.5K  
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

C#
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

C#
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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)