C 中DataTable與實體型別的快捷互轉

2021-10-25 02:43:21 字數 1602 閱讀 3416

我們在做一些crud類的專案開發的時候,經常會涉及到datatable型別與實體型別互轉的操作,過去我們也許會通過反射將表填充到實體的方式來實現,但其實我們可以利用json很便捷的實現該轉換,主要通過newtonsoft.json.linq.jarray提供的方法進行中轉,如下:

過去通過反射取屬性與值進行填充的互換方法可參考  的例子,例子**如下:

using system;

using system.collections.generic;

using system.data;

using system.reflection;

namespace commonsd

else

}/// /// 填充物件列表:用dataset的第index個表填充實體類

///

public listfillmodel(dataset ds, int index)

else

}/// /// 填充物件列表:用datatable填充實體類

///

public listfillmodel(datatable dt)

listmodellist = new list();

foreach (datarow dr in dt.rows)

modellist.add(model);

}return modellist;

}/// /// 填充物件:用datarow填充實體類

///

public t fillmodel(datarow dr)

//t model = (t)activator.createinstance(typeof(t));

t model = new t();

for (int i = 0; i < dr.table.columns.count; i++)

return model;

}#endregion

#region 實體類轉換成datatable

/// /// 實體類轉換成dataset

///

/// 實體類列表

///

public dataset filldataset(listmodellist)

else

}/// /// 實體類轉換成datatable

///

/// 實體類列表

///

public datatable filldatatable(listmodellist)

datatable dt = createdata(modellist[0]);

foreach (t model in modellist)

dt.rows.add(datarow);

}return dt;

}/// /// 根據實體類得到表結構

///

/// 實體類

///

private datatable createdata(t model)

return datatable;

}#endregion

}}

DataTable與實體類互相轉換

datatable與實體類互相轉換 實體類 public class modelhandlerwhere t new else 填充物件列表 用dataset的第index個表填充實體類 public listfillmodel dataset ds,int index else 填充物件列表 用d...

DataTable與實體類互相轉換

datatable與實體類互相轉換 datatable與實體類互相轉換 實體類 public class modelhandlerwhere t new else 填充物件列表 用dataset的第index個表填充實體類 public listfillmodel dataset ds,int in...

實體類和DataTable的轉換

最近在專案中在資料庫查詢的時間,總是要用到資料表到實體類物件列表的轉化,自己封裝了乙個轉換的方法,用起來還比較方便,記下來,以後可以重複使用,原理就主要是利用反射,當然有更好的orm框架可以實現,主要的原因就是我這裡沒有用orm。資料表轉換類 public class dbtableconverto...