65.9K
CodeProject is changing. Read more.
Home

Convert Hashtable Rows into DataTable Columns in C#

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1 vote)

Feb 7, 2013

CPOL
viewsIcon

35975

Function to Convert Hashtable Rows into DataTable Columns in C#.Net

Introduction 

Function to Convert Hashtable Rows into DataTable Columns in C#

Background 

Hashtable, DataSet, DataRow,DictionaryEntry etc.

Using the Code 

Simplest way to convert a Hashtable into a DataTable with all the Hashtable rows converted into DataTable columns. This code creates one row in DataTable, you can modify it according to your requirement.

This Function returns a DataTable object and takes a Hashtable object as parameter. Simple implementation example: 

htData <Hashtable with Data>
	DataTable dt =new  DataTable();
	dt=  ConvertHashtableRowsToDataTableColumns(htData);

 The classes used are:  

DataTableDictionaryEntryDataRowobject, var and Hashtable.
the methods and properties, used are: 

  1. dataTable.Columns.Add(entry.Key.ToString(), typeof(object));
  2. entry.Value.ToString()
  3. dataTable.Rows.Add(dr)
  4. dataTable.NewRow()
  5. ht.GetType().Name

and dataTable.TableName, used to specify the table name. 

private DataTable ConvertHashtableRowsToDataTableColumns(System.Collections.Hashtable ht)
        {
            //create an instance of DataTable
            var dataTable = new DataTable(ht.GetType().Name);
            //specify the table name		
            dataTable.TableName = "TableName";
            //fill the columns in the DataTable
            foreach (DictionaryEntry entry in ht)
            {
                dataTable.Columns.Add(entry.Key.ToString(), typeof(object));
            }
            //create a new DataRow in the DataTable	
            DataRow dr = dataTable.NewRow();
            //fill the new row in the DataTable
            foreach (DictionaryEntry entry in ht)
            {
                dr[entry.Key.ToString()] = entry.Value.ToString();
            }
            //add the filled up row to the DataTable
            dataTable.Rows.Add(dr);
            //return the DataTable
            return dataTable;
        }

Hope this helps in time of need...  

Happy Coding Smile | <img src=