本文共 3819 字,大约阅读时间需要 12 分钟。
/*遍历DataTable*/
class
ClientStruct
{
public
string
ID =
"ID"
;
public
string
Name =
"Name"
;
public
string
Company =
"Company"
;
public
string
CreatedDate =
"CreatedDate"
;
}
public
string
[,] infoArr =
new
string
[,] { {
"1"
,
"百度"
,
"baidu"
,
"201303"
}, {
"2"
,
"迅雷"
,
"xunlei"
,
"201302"
}, {
"3"
,
"谷歌"
,
"guge"
,
"201301"
} };
protected
void
LinqDataTable()
{
DataRow row;
ClientStruct cs =
new
ClientStruct();
DataTable dtTable =
new
DataTable();
dtTable.Columns.Add(cs.ID);
dtTable.Columns.Add(cs.Name);
dtTable.Columns.Add(cs.Company);
dtTable.Columns.Add(cs.CreatedDate);
for
(
int
i = 0; i < 3; i++)
{
row = dtTable.NewRow();
row[cs.ID] = infoArr[i, 0];
row[cs.Name] = infoArr[i, 1];
row[cs.Company] = infoArr[i, 2];
row[cs.CreatedDate] = infoArr[i, 3];
dtTable.Rows.Add(row);
}
//遍历DataTable,取出所有的ID
List<
string
> lstID = (from d
in
dtTable.AsEnumerable()
select d.Field<
string
>(cs.ID)).ToList<
string
>();
//遍历DataTable,将其中的数据对应到ClientStruct中:
List<ClientStruct> list = (from x
in
dtTable.AsEnumerable()
orderby x.Field<
string
>(cs.Company)
select
new
ClientStruct
{
ID = x.Field<
string
>(cs.ID),
Name = x.Field<
string
>(cs.Name),
Company = x.Field<
string
>(cs.Company),
CreatedDate = x.Field<
string
>(cs.CreatedDate)
}).ToList<ClientStruct>();
//遍历DataTable,并将上面的List结果存储到Dictionary中:
Dictionary<
string
, ClientStruct> dic = list.ToDictionary(p => p.Company);
//p作为string键值来存储
}
//选取datatable指定列
var query = from c in dt.AsEnumerable()
select new XSDDExeStatusMingXi { vou_no = c.Field<string>("vou_no"), corr_id = c.Field<string>("corr_id"), corr_name = c.Field<string>("corr_name"), item_no = c.Field<string>("item_no"), item_name = c.Field<string>("item_name"), item_spec = c.Field<string>("item_spec"), item_pattern = c.Field<string>("item_pattern"), unit_name = c.Field<string>("unit_name"), order_qty = c.Field<decimal>("order_qty"), date_demand = c.Field<DateTime>("date_demand"), lock_qty = c.Field<decimal>("lock_qty"), PC_qty = c.Field<decimal?>("PC_qty") == 0 ? "": c.Field<decimal?>("PC_qty").ToString(), PG_qty = c.Field<decimal?>("PG_qty") == 0 ? "" : c.Field<decimal?>("PG_qty").ToString(), RK_qty = c.Field<decimal?>("RK_qty") == 0 ? "" : c.Field<decimal?>("RK_qty").ToString(), FH_qty = c.Field<decimal?>("FH_qty") == 0 ? "" : c.Field<decimal?>("FH_qty").ToString(),
};
//group by
var query = from c in dt.AsEnumerable() group c by new { vou_no = c.Field<string>("vou_no"), vou_no_line = c.Field<int>("vou_no_line"), confirm_date = c.Field<DateTime?>("confirm_date") } into s select new XSDDExeStatusMingXi {
vou_no = c.Select(p => p.Field<string>("vou_no").Trim()).First(), corr_id = s.Select(p => p.Field<string>("corr_id").Trim()).First(), corr_name = s.Select(p => p.Field<string>("corr_name").Trim()).First(), item_no = s.Select(p => p.Field<string>("item_no").Trim()).First(), item_name = s.Select(p => p.Field<string>("item_name").Trim()).First(), item_spec = s.Select(p => p.Field<string>("item_spec").Trim()).First(), item_pattern = s.Select(p => p.Field<string>("item_pattern").Trim()).First(), unit_name = s.Select(p => p.Field<string>("unit_name").Trim()).First(), order_qty = s.Select(p => p.Field<decimal>("order_qty")).First(), date_demand = s.Select(p => p.Field<DateTime>("date_demand")).First(), lock_qty = s.Select(p => p.Field<decimal>("lock_qty")).First(), PC_qty = string.Join("<br>", s.Select(p => p.Field<decimal?>("PC_qty") == 0 ? "" : p.Field<decimal?>("PC_qty").ToString())), PG_qty = string.Join("<br>", s.Select(p => p.Field<decimal?>("PG_qty") == 0 ? "" : p.Field<decimal?>("PG_qty").ToString())), RK_qty = string.Join("<br>", s.Select(p => p.Field<decimal?>("RK_qty") == 0 ? "" : p.Field<decimal?>("RK_qty").ToString())), FH_qty = string.Join("<br>", s.Select(p => p.Field<decimal?>("FH_qty") == 0 ? "" : p.Field<decimal?>("FH_qty").ToString())) };
转载地址:https://blog.csdn.net/qq_30469045/article/details/51883631 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!