Code snippet : Rollup tasks list from sub-sites to the parent site

string strSite = "https://terminator:2004/sites/t2";
            SPSite oSite = new SPSite(strSite);
            DataTable data = new DataTable();
            bool flag = true;
            foreach (SPWeb oWeb in oSite.AllWebs )
            {
                SPListCollection lists = oWeb.Lists;
                foreach (SPList list in lists)
                {
                    if(String.Compare(list.Title.ToString(), "Tasks") == 0)
                    {
                        if(list.Items.Count > 0)
                        {
                            if(flag)
                            {
                                    data = list.Items.GetDataTable().Clone();
                                    flag = false;
                            }
                            foreach(DataRow dr in list.Items.GetDataTable().Rows)
                            {
                                DataRow newRow = data.NewRow();
                                newRow.ItemArray = dr.ItemArray;
                                data.Rows.Add(newRow);
                            }
                        }
                    }
                }
            }

            if(data.Rows.Count == 0)
                MessageBox.Show("No Data:(");
            else
            {
                dataGrid1.DataSource=data;
            }