datatable 添加数据行
我 dt 里 存的数据 是 这样的
Name , percent Oid MONEY
A,B,C 0.2,0.3,0.4 1 1000
A,B,D 0.3,0.1,0.5 2 500
我 想 给他们显示成这样
NAME PERCENT OID MONEY
A 0.2 1 1000*0.2 后的值
B 0.3 1 1000* 0.3 后的值
......
依次类推 , 这样 如何实现 ,求高手 给个思路
[解决办法]
笨方法~~
List<Model> lst = new List<Model>();
foreach (DataRow dr in dt.Rows)
{
string[] strsName = dr["Name"].ToString().Split(',');
string[] strsPercent = dr["percent"].ToString().Split(',');
string strOid = dr["Oid"].ToString();
decimal intMoney = decimal.Parse(dr["Money"].ToString());
lst.AddRange(strsName.Select((t, i) => new Model
{
Name = t,
Percent = strsPercent[i],
Oid = strOid,
Money = intMoney * decimal.Parse(strsPercent[i])
}));
}
DataTable dtbl = new DataTable();
dtbl.Columns.Add("Name", typeof(string));
dtbl.Columns.Add("percent", typeof(string));
dtbl.Columns.Add("Oid", typeof(int));
dtbl.Columns.Add("MONEY", typeof(string));
DataRow dr =dtbl.NewRow();
dr["Name"] = "A,B,C";
dr["percent"] = "0.2,0.3,0.4";
dr["Oid"] = 1;
dr["MONEY"] = "1000";
dtbl.Rows.InsertAt(dr, 0);
DataRow dr1 = dtbl.NewRow();
dr1["Name"] = "A,B,D";
dr1["percent"] = "0.3,0.1,0.5";
dr1["Oid"] = 2;
dr1["MONEY"] = "500";
dtbl.Rows.InsertAt(dr1, 1);
DataTable dtblResult = dtbl.Clone();
foreach (DataRow row in dtbl.Rows)
{
for (int i = 0; i < dr["Name"].ToString().Split(',').Length; i++)
{
DataRow drNew = dtblResult.NewRow();
drNew["Name"] = row["Name"].ToString().Split(',')[i].ToString();
drNew["percent"] = row["percent"].ToString().Split(',')[i].ToString();
drNew["Oid"] = row["Oid"].ToString();
drNew["MONEY"] = row["MONEY"].ToString() + "*" + row["percent"].ToString().Split(',')[i].ToString();
dtblResult.Rows.Add(drNew);
}
}