DataTable行转列

DataTable vTbl = new DataTable();//最终显示的数据
            vTbl.Columns.Add("Datadate", typeof(String));
            vTbl.Columns.Add("10kV", System.Type.GetType("System.Double"));
            vTbl.Columns.Add("10kV及以下", System.Type.GetType("System.Double"));
            vTbl.Columns.Add("0.4kV", System.Type.GetType("System.Double"));
            DataRow[] DrS;
            DataRow[] DrS1;
            DataRow[] DrS2;
            DataRow[] DrS3;
            DrS1 = iTbl.Select("OBJECTNAME='10'");
            DrS2 = iTbl.Select("OBJECTNAME='10kV及以下'");
            DrS3 = iTbl.Select("OBJECTNAME='0.4'");
            if (DrS1.Length > DrS2.Length)
            {
                DrS = DrS1;
            }
            else
            {
                DrS = DrS2;
            }
            if (DrS.Length > DrS3.Length)
            { }
            else { DrS = DrS3; }
            if (DrS.Length > 0)
            {
                for (int i = 0; i < DrS.Length; i++)
                {
                    DataRow drx = vTbl.NewRow();
                    drx[0] = DrS[i]["日期"].ToString();

                    DrS1 = iTbl.Select("OBJECTNAME='10' and 日期='" + DrS[i]["日期"].ToString() + "'");
                    if (DrS1.Length > 0)
                    {
                        drx[1] = DrS1[0]["线损率(%)"].ToString();
                    }
                    else
                    {
                        drx[1] = DBNull.Value;
                    }
                    //drx[1] = DrS[i]["线损率(%)"].ToString();
                    DrS2 = iTbl.Select("OBJECTNAME='10kV及以下' and 日期='" + DrS[i]["日期"].ToString() + "'");
                    if (DrS2.Length > 0)
                    {
                        drx[2] = DrS2[0]["线损率(%)"].ToString();
                    }
                    else
                    {
                        drx[2] = DBNull.Value;
                    }
                    DrS3 = iTbl.Select("OBJECTNAME='0.4' and 日期='" + DrS[i]["日期"].ToString() + "'");
                    if (DrS3.Length > 0)
                    {
                        drx[3] = DrS3[0]["线损率(%)"].ToString();
                    }
                    else
                    {
                        drx[3] = DBNull.Value;
                    }
                    vTbl.Rows.Add(drx);
                }
            }
            if (dianyadengji2 == "不选择")
           {
               if (ntype == "5000")
               {
               }
               if (ntype == "5001")
               {
                   vTbl.Columns.Remove("10kV及以下");
               }
            }
            if (dianyadengji2 == "10kV")
           {
               vTbl.Columns.Remove("10kV及以下");
                vTbl.Columns.Remove("0.4kV");
           }
           if (dianyadengji2 == "0.4kV")
           {
               vTbl.Columns.Remove("10kV及以下");
                vTbl.Columns.Remove("10kV");
           }
           if (dianyadengji2 == "10kV及以下")
           {
                vTbl.Columns.Remove("0.4kV");
                vTbl.Columns.Remove("10kV");
           }

posted @ 2010-04-14 09:57  XGU_Winner  阅读(521)  评论(0编辑  收藏  举报