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. C# Get Copyright information from current application using Reflection
  4. Get all table names from Microsoft Access (MDB) database file
  5. My Latest article ‘DataTable filter demonstation’