数据库的设计格式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.   

    如果仅仅是录入或者修改某个ID,或者某个日期的数据,我直接用  dataGridView就可以搞定
      

  2.   

    建个DataTable(id   num  date )
    foreach你下面表的每一行,根据列名来加入新建表
      

  3.   

    我试着写了下,代码如下:
                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是第二个表