|
Datatable daki veriyi istenilen class tipinde list e dönüştürmek
|
|
|
|
Veritabında ki tabloları, oluşturduğumuz nesne tipindeki verilerle eşleştiren, geriye List tipinde veri döndüren kod parçası.
|
|
|
|
|
Veritabındaki kolon adları ve veri tipleriyle List tipine döndürmek istediğimiz nesnenin property adları ve veri tipleri aynı olmak şartıyla, dinamik olarak tabloları List<Object> tipinde kullanmak mümkün.
Örneğin;
public class Ayarlar
{
string anahtar;
public string Anahtar
{
get { return anahtar; }
set { anahtar = value; }
}
string deger;
public string Deger
{
get { return deger; }
set { deger = value; }
}
}
şeklinde bir nesnemiz olsun. Anahtar ve Deger kolonlarına sahip bir tabloyla dinamik olarak eşleştirebiliriz. Yapmamız gereken oluşturduğumuz DataTable nesnesini nesne ismiyle birlikte bu metoda göndermek.
public static List<Object> VeriCek(String sinifAdi, DataTable dt)
{
List<Object> liste = new List<Object>();
Type t = Type.GetType(sinifAdi);
Object obj = null;
foreach (DataRow dr in dt.Rows)
{
obj = Activator.CreateInstance(t);
foreach (PropertyInfo item in t.GetProperties())
{
if (!dr[item.Name].Equals(DBNull.Value))
item.SetValue(obj, dr[item.Name], null);
}
liste.Add(obj);
}
return liste;
}
Kullanımı :
List<Object> liste = VeriCek(dt,"Ayarlar");
foreach(Ayarlar a in liste)
{
Response.Write(a.Anahtar + " " + a.Deger + "<br/>");
}
|
|
|
|
|
|
Dosya bulunamadı.
|
|
|
|
|
|
|
|
|
|
|
|
|
|