Linq 选取datatable 指定列
来源:互联网 发布:淘宝图片热点链接工具 编辑:程序博客网 时间:2024/05/17 23:41
/*遍历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()))
};
- Linq 选取datatable 指定列
- C# Linq 取 DataTable指定列
- pandas.loc 选取指定列进行操作
- datatable增加行、列、筛选指定字段
- 获取DataTable指定列的数据
- 判断DataTable中否存在指定列
- jquery datatable 设置指定列的宽度
- DataTable插件指定某列不可排序
- linq to datatable group by 多列 实现
- DataTable 使用linq方法获得某列分组列表
- Linq Datatable
- datatable linq
- usecols选取指定列rename修改列名round指定有效位数
- 对指定的DataTable列进行求和统计
- 在datatable中,在指定位置插入列
- jquery [datatable]排序时指定某列不可排序
- 往DataTable的指定位置中添加新列
- jquery [datatable]排序时指定某列不可排序
- CCF题库—模版生成系统
- SAP long text SAP长文本读取。
- CentOS下g++安装
- 串的应用--模式匹配算法
- 按照数字将字符串拆分
- Linq 选取datatable 指定列
- java中判断两个对象是否相等的方法和代码
- android service 的动态更改UI和service重启问题
- MySQL入门书籍
- 抽象工厂(Abstract Factory)
- 变压器喷码机
- bzoj1799 [Ahoi2009]self 同类分布 数位dp
- 汉诺塔问题递归实现
- Struts2 框架的详细搭建步骤