Group Same Values in DataTable and Display Each Group related Data to seperate GridView in franework 2.0 with out Linq.


private void Do_Work()//Group Same Values in DataTable and Display Each Group related Data to seperate GridView in 2.0 with out Linq.
        {
            DataTable dt = Mails_List_XL(Server.MapPath("~/Book1.xlsx"));
            int Count = dt.Rows.Count;
            DataSet ds = new DataSet();
            for (int i = 0; i < Count; i++)
            {
                DataTable dt_new = new DataTable();
                dt_new.TableName = "Tab" + i;
                dt_new.Columns.Add("ID");
                int[] Pos = new int[0];
                int Same_Count = 0;
                for (int j = 0; j < Count; j++)
                {
                    if (dt.Rows[i]["ID"].ToString() == dt.Rows[j]["ID"].ToString())
                    {
                        DataRow dr_new = dt_new.NewRow();
                        dr_new["ID"] = dt.Rows[j]["ID"].ToString();
                        dt_new.Rows.Add(dr_new);
                        dt_new.AcceptChanges();
                        Same_Count++;
                        Array.Resize(ref Pos, Same_Count);
                        Pos[Same_Count - 1] = j;
                    }
                }
                if (dt_new.Rows.Count > 0)
                {
                    ds.Tables.Add(dt_new);
                }
                for (int k = 0; k < Pos.Length; k++)
                {
                    dt.Rows.RemoveAt(Pos[k]);
                    for (int y = 0; y < Pos.Length; y++)
                    {
                        Pos[y] = Pos[y] - 1;
                    }
                }
                Count = Count - Same_Count;
            }
            foreach (DataTable dsdt in ds.Tables)
            {
                GridView gv = new GridView();
                gv.ID = dsdt.TableName;
                gv.DataSource = dsdt;
                gv.DataBind();
                mpl.Controls.Add(gv);
            }
        }

You Can Download the Working Code From here.