Snippet
public static List<T> ConvertDataTable<T>(DataTable dt) { List<T> data = new List<T>(); foreach (DataRow row in dt.Rows) { T item = GetItem<T>(row); data.Add(item); } return data; } Snippet
public static T GetItem<T>(DataRow dr) { Type temp = typeof(T); T obj = Activator.CreateInstance<T>(); foreach (DataColumn column in dr.Table.Columns) { foreach (PropertyInfo pro in temp.GetProperties()) { if (pro.Name == column.ColumnName) pro.SetValue(obj, dr[column.ColumnName], null); else continue; } } return obj; } Snippet
public class Student { public int StudentId { get; set; } public string StudentName { get; set; } public string Address { get; set; } public string MobileNo { get; set; } } Snippet
DataTable dt = new DataTable("Student"); dt.Columns.Add("StudentId", typeof(Int32)); dt.Columns.Add("StudentName", typeof(string)); dt.Columns.Add("Address", typeof(string)); dt.Columns.Add("MobileNo", typeof(string)); //Data dt.Rows.Add(1, "Manish", "Hyderabad", "0000000000"); dt.Rows.Add(2, "Venkat", "Hyderabad", "111111111"); dt.Rows.Add(3, "Namit", "Pune", "1222222222"); dt.Rows.Add(4, "Abhinav", "Bhagalpur", "3333333333"); List<Student> studentDetails = new List<Student>(); studentDetails = Class1.ConvertDataTable<Student>(dt); GridView1.DataSource = studentDetails; GridView1.DataBind();