간단 한 Datatable 변환 List, JSon
9344 단어 Datatable
1. 모델 에 따라 대응 하 는 List 로 전환
1 public static List<Model> ToList<Model>(this DataTable dt) where Model: class,new()
2 {
3
4 //
5 List<PropertyInfo> prlist = new List<PropertyInfo>();
6 // Model
7 Type t = typeof(Model);
8 // Model Public Model DataTable (PropertyInfo)
9 Array.ForEach<PropertyInfo>(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });
10 //
11 List<Model> oblist = new List<Model>();
12 foreach (DataRow row in dt.Rows)
13 {
14 // Model
15 var Modelob = new Model();
16 // ,
17 prlist.ForEach(p => { if (row[p.Name] != DBNull.Value) p.SetValue(Modelob, row[p.Name], null); });
18 // .
19 oblist.Add(Modelob);
20 }
21 return oblist;
22 }
2. List < Hashtable > 로 바로 전환
특정 열 이 없 는 DataTable 을 List < Hashtable > 로 바 꾸 어 List < T > 기능 에 편리 하 게 사용 할 수 있 도록 합 니 다.둘째, MVC 가 제공 하 는 JSon () 을 직접 JSonResult 로 전환 할 수 있다.
public List<Hashtable> GetList(DataTable dt)
{
List<Hashtable> mList = new List<Hashtable>();
int count = dt.Rows.Count;
if (count > 0)
{
for (int i = 0; i <= count-1; i++)
{
Hashtable ht = new Hashtable();
foreach (DataColumn col in dt.Columns)
{
ht.Add(col.ColumnName, dt.Rows[i][col.ColumnName]);
}
mList.Add(ht);
}
}
return mList;
}
3. DataTable 전 JSon
// : List, Json,
public string DtToJson( DataTable dt , int page, int rows)
{
string json = string.Empty;
IList<Hashtable> mList = new List<Hashtable>();
int count = dt.Rows.Count;
int pageCount = (page + rows) > count ? count : (page + rows);
if (pageCount > 0)
{
for (int i = page; i <= pageCount - 1; i++)
{
Hashtable ht = new Hashtable();
foreach (DataColumn col in dt.Columns)
{
ht.Add(col.ColumnName, dt.Rows[i][col.ColumnName]);
}
mList.Add(ht);
}
json = JsonConvert.SerializeObject(new {total=count,rows= mList });
}
return json;
}
// : , datatable Json, Newtonsoft.Json.dll
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public string DtToJson(DataTable dt)
{
result=JsonConvert.SerializeObject(dt, new DataTableConverter());
return result;
}
// : List mvc Json Jsonresult
public ActionResult Select(int page, int rows)
{
var UserList=GetList(SelectUserTable());
var List = UserList.Skip((page - 1) * rows).Take(rows);
int length = UserList.Count();
var result = Json(new { total = length.ToString(), rows = List });
result.ContentType = "text/html";
return result;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
yui--datatable 행 추가 형식텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.