I use an IEnumerable  - IEnumerable<MyObjects.objMyContact> FilteredContacts; Suppose this contains some rows.

Here is the code for generating DataTable from IEnumerable. Here are the sample steps I followed.

  1. Create a new DataTable
  2. Add column names to DataTable
  3. Add rows to DataTable

 

            DataTable dt = new DataTable();
 
            MyObjects.objMyContact c = new MyObjects.objMyContact();
            Type t = typeof(MyObjects.objMyContact);
            MemberInfo[] mi = t.GetMembers();
 
            foreach (MemberInfo m in mi)
            {
                if (m.MemberType == MemberTypes.Field)
                {
                    FieldInfo fi = m as FieldInfo;
                    dt.Columns.Add(fi.Name, fi.FieldType);
                }
            }
 
            foreach (MyObjects.objMyContact contact in FilteredContacts)
            {
                DataRow dr = dt.NewRow();
                foreach (MemberInfo m in mi)
                {
                    if (m.MemberType == MemberTypes.Field)
                    {
                        FieldInfo fi = m as FieldInfo;
                        dr[fi.Name] = fi.GetValue(contact);
                    }
                }
                dt.Rows.Add(dr);
 
            }

image

VN:F [1.1.6_502]
Rating: 0.0/5 (0 votes cast)
Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • DotNetKicks
  • LinkedIn
  • Live
  • MySpace
  • StumbleUpon
  • Technorati

Related posts:

  1. Return DataTable from Web Service
  2. Top 10 users on CommunityServer
  3. My Latest article ‘DataTable filter demonstation’
  4. Get all table names from Microsoft Access (MDB) database file
  5. How to access items in a GridView?