c#怎么计算Datatable里面数据的合计和总计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎么计算Datatable里面数据的合计和总计相关的知识,希望对你有一定的参考价值。
参考技术A 遍历这个表就行了。外层遍历行,里层遍历列。 参考技术B //DataTable数据源处理DataTable dt =查询方法;
dt.Columns.Add("总计");
decimal 数据集成 =0;
decimal 系统集成 =0;
decimal 软件开发 =0;
decimal QB产品事业部 =0;
decimal 总计 = 0;
for (int i = 0; i < dt.Rows.Count; i++)
dt.Rows[i]["总计"] = Convert.ToDecimal(dt.Rows[i]["数据集成"])+Convert.ToDecimal(dt.Rows[i]["系统集成"])+Convert.ToDecimal(dt.Rows[i]["软件开发"])+Convert.ToDecimal(dt.Rows[i]["QB产品事业部"]);
数据集成 += Convert.ToDecimal(dt.Rows[i]["数据集成"]);
系统集成 += Convert.ToDecimal(dt.Rows[i]["系统集成"]);
软件开发 += Convert.ToDecimal(dt.Rows[i]["软件开发"]);
QB产品事业部 += Convert.ToDecimal(dt.Rows[i]["QB产品事业部"]);
总计 += Convert.ToDecimal(dt.Rows[i]["总计"]);
dt.Rows.Add("合计", 数据集成, 系统集成, 软件开发, QB产品事业部, 总计);
c#如何修改DataTable里面的特定列的数据类型
返回的datatable如下:
ID ChkYN ModiDate
A 1 20080202
B 1 20080202
C 1 20080202
但是这个ChkYN是int类型 我想要把它改成bool类型,但是我只能在datatable里面修改,不知道该怎么做
DataTable dt = AuctionOrders.PayCarPrice(uid, payStatus, pageIndex, pageSize);
(此处空一行)
if (dt.Rows.Count > 0)
//新表
DataTable newDt = new DataTable();
List<string> listColums = new List<string>();
//复制表结够
newDt = dt.Clone();
(此处空一行)
//新表中的列数据类型为Decmail的改为string
foreach (DataColumn col in newDt.Columns)
listColums.Add(col.ColumnName);
if (col.DataType.FullName == "System.Decimal")
col.DataType = Type.GetType("System.String");
(此处空一行)
foreach (DataRow row in dt.Rows)
DataRow newDtRow = newDt.NewRow();
foreach(DataColumn column in dt.Columns)
if (column.DataType.FullName == "System.Decimal")
newDtRow[column.ColumnName] = (Convert.ToDecimal(row[column.ColumnName]) / 10000).ToString("c") + "万";
else
newDtRow[column.ColumnName] = row[column.ColumnName];
newDt.Rows.Add(newDtRow);
(此处空三行)
var obj = new state = true, message = newDt ;
Response.Write(JsonConvert.SerializeObject(obj));
else
var obj = new state = false, message = "没有查询到信息" ;
Response.Write(JsonConvert.SerializeObject(obj));
扩展资料:
关于上述注意事项
DataTable中数据:ID NAME State1 A 12 B 03 C 0State数据列为int型,想让它在页面读取显示时,1显示为非工作日转工作日,0显示为工作日转非工作日。
详细原因:当在做列转换时
1,数据库中类型和要修改成的类型不一致。
2,遇到DataTable中有数据则无法进行数据转换的问题。
解决方法:如果直接修改当前datatable里制定列的数据会提示因为有数据所以不让修改,而通过if判断直接赋值又会提示数据类型不同而拒绝操作,报错。
参考技术A 先new一个Table,得到列Columns,再修改Type:DataTable dt=new DataTable();
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");本回答被提问者和网友采纳 参考技术B DataTable S=new DataTable();
S.Columns["ChkYn"].DataType=Type.GetType("System.bool"); 参考技术C DataTable dt=new DataTable();
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool"); 参考技术D dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");
以上是关于c#怎么计算Datatable里面数据的合计和总计的主要内容,如果未能解决你的问题,请参考以下文章