数据库的设计格式id num date
1 33 2007-1-1
2 99 2007-1-1
3 88 2007-1-1
1 77 2007-1-2
2 88 2007-1-2
3 66 2007-1-2
1 77 2007-1-3
2 88 2007-1-4
3 55 2007-1-5如果仅仅是录入或者修改某个ID,或者某个日期的数据,我直接用
但是现在实际要求是录入或者修改的格式如下ID 20070101NUM 20070102NUM 20070103NUM
1 33 77 77
2 99 88 88
3 88 66 55不知道大家有什么好的办法没有?
1 33 2007-1-1
2 99 2007-1-1
3 88 2007-1-1
1 77 2007-1-2
2 88 2007-1-2
3 66 2007-1-2
1 77 2007-1-3
2 88 2007-1-4
3 55 2007-1-5如果仅仅是录入或者修改某个ID,或者某个日期的数据,我直接用
但是现在实际要求是录入或者修改的格式如下ID 20070101NUM 20070102NUM 20070103NUM
1 33 77 77
2 99 88 88
3 88 66 55不知道大家有什么好的办法没有?
foreach你下面表的每一行,根据列名来加入新建表
DataTable dtOld = new DataTable();
dtOld.Columns.Add(new DataColumn("ID"));
dtOld.Columns.Add(new DataColumn("20070101NUM"));
dtOld.Columns.Add(new DataColumn("20070102NUM"));
dtOld.Columns.Add(new DataColumn("20070103NUM")); DataRow drOld = null;
drOld = dtOld.NewRow();
drOld[0] = "1";
drOld[1] = "33";
drOld[2] = "77";
drOld[3] = "77";
dtOld.Rows.Add(drOld);
drOld = dtOld.NewRow();
drOld[0] = "2";
drOld[1] = "99";
drOld[2] = "88";
drOld[3] = "88";
dtOld.Rows.Add(drOld);
DataTable dtNew = new DataTable();
dtNew.Columns.Add("id");
dtNew.Columns.Add("num");
dtNew.Columns.Add("date"); //没考虑日期格式 DataRow drNew = null;
foreach (DataRow dr in dtOld.Rows)
{
int i = 1;
foreach (DataColumn dc in dtOld.Columns)
{
if (dc.ColumnName.ToUpper() != "ID")
{
drNew = dtNew.NewRow();
drNew["id"] = dr[0];
drNew["num"] = dr[i];
drNew["date"] = dc.ColumnName.Substring(0, 8); //日期转换方法很多,这里就不写了
dtNew.Rows.Add(drNew);
i++;
}
}
}
dtNew是第一个表,dtOld是第二个表