擴充套件方法 針對DataTable操作

2021-06-02 03:00:10 字數 2446 閱讀 4527

擴充套件方法類,必須是靜態的類,以及靜態方法。

public static class exmethod

item.add(tt);

}return item;

}/// ///

///

///

///

///

///

public static listgetmodelitem(this datatable @dt) where t : new()

/// ///

///

///

///

///

///

///

public static t getmodel(this datarow @dr, datacolumncollection dcc, string split) where t : new()

if (pi.propertytype.isenum)

", value)), null);

}else

}return _newt;

}/// ///

///

///

///

///

///

public static t getmodel(this datatable @dt, string split) where t : new()

return getmodel(dt.rows[0], dt.columns, split);

}/// ///

///

///

///

///

public static t getmodel(this datatable @dt) where t : new()

return getmodel(dt.rows[0], dt.columns, null);

}}

用個簡單的例子來說明一下上面的方法吧。

在資料表中有一張【tablename】表,表的字段有四字分別是 field1、field2、field3、field4。

同時建立乙個table的模型類如下所示:

public class tablename

public string field2

public string field3

public string field4

}

表的結構和類的結構一樣

現在要獲取乙個tablename表裡所有資料

一般正常情況如下:

string sqlquery = string.format("[0}",select * from tablename);

datatable dt = databasehelper.getdatatable(sqlquery);

listitem = new list最好判斷一下dt是否為空

foreach(datarow dr in dt.rows)

",dr["field1"]);

tn.field2 = string.format("",dr["field2"]);

tn.field3 = string.format("",dr["field3"]);

tn.field4 = string.format("",dr["field4"]);

item.add(tn);

}//現在將返回的資料,轉換成物件了資料了。

如果又有 tablename1這樣一張表,同樣也有乙個物件的 tablename1類模型

同樣要獲取 tablename裡的資料轉成 list集合

又得寫 一遍

foreach(datarow dr in dt.rows)

現在寫乙個通用的方法

只要傳入乙個物件模型就可以,返回 物件模型資料集合。

public  static listgetmodelitem(datatable dt)

將上面那段**放到擴充套件方法裡如下所示:

sqlquery = string.format("","select * from tablename");

listitem = databasehelper.getdatatable(sqlquery).getmodeitem();

sqlquery = string.format("","select * from tablenam1");

listitem = databasehelper.getdatatable(sqlquery).getmodelitem();

這樣就不用想要表資料的時候,都要去寫乙個foreach來對物件模型進行賦值了

這樣的話通過擴充套件方法就挺了,用起來也方便許多。

JS針對字串的方法擴充套件

在前端的開發工作中,我們經常會遇到這樣的情況 從伺服器端獲取到的資料需要進行轉義後才能在頁面上進行展示,在js中我們可以對字串進行一次擴充套件以便於使用。字串方法擴充套件 function elseif this 1 else for method in stringextends 在上述 中我們對...

DataTable擴充套件 轉化實體ToList

直接上 根據屬性進行對映 datatable轉化成實體list public static class datatableextension list entites new list foreach datarow dr in dt.rows entites.add t return entite...

DataTable方法總結

1 初始化datatable datatable dt1 new datatable dt1.columns.add id typeof int dt1.columns.add names typeof string dt1.columns id unique true dt1.primarykey...