Listeyi DataTable' a Dönüştürme - C#

Kaynak: Semih ÇELİKOL, Stackoverflow

using System.Reflection (eklemeyi unutmayınız)

  1. public static System.Data.DataTable ConvertToDataTable(List items)
  2.         {
  3.             System.Data.DataTable dataTable = new System.Data.DataTable(typeof(T).Name);
  4.             //Get all the properties
  5.             PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
  6.             foreach (PropertyInfo prop in Props)
  7.             {
  8.                 //Defining type of data column gives proper data table 
  9.                 var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
  10.                 //Setting column names as Property names
  11.                 dataTable.Columns.Add(prop.Name, type);
  12.             }
  13.             foreach (T item in items)
  14.             {
  15.                 var values = new object[Props.Length];
  16.                 for (int i = 0; i < Props.Length; i++)
  17.                 {
  18.                     //inserting property values to datatable rows
  19.                     values[i] = Props[i].GetValue(item, null);
  20.                 }
  21.                 dataTable.Rows.Add(values);
  22.             }
  23.             //put a breakpoint here and check datatable
  24.             return dataTable;
  25.         }
  26.  

Yorumlar

Bu blogdaki popüler yayınlar

Verilen yolun biçimi desteklenmiyor. (C#, FileUpload Dosya Yükleme Hatası)

Başvuran varsayılan bitiş noktası öğesi bulunamadı. Hatası ve Çözümü