Problem
When Display data in datagridview it take too much time although data not more why and how to reduce time .
Data Display in datagridview windows form is 325 members only and not big data .
It take too much time when press buttonshow click event to show data in datagridview
it take may be 45 minutes meaning it take 3/4 hour to show data in datagridview
why and how to reduce time
- private void GetMemberAccount(string MemberCode)
- {
- Tax = GetTax();
- DataTable DTPriceList;
- Annual = 0; UnderAge = 0; OverAge = 0; BabySitter = 0;
- TotalUnderAge = 0; TotalOverAge = 0; TotalAnnual = 0; NetTotalAnnual = 0;
- CridtValue1 = 0; CridtValue2 = 0;
- string SQL = @"Select * From View_MembersWithPriceList where (MemberCode = N'" + MemberCode + "') and (RelatedMemberCode IS NULL) and (Member ='True') AND (Year = " + txtYear.Text + ")";
- DTPriceList = DataAccess.ExecuteDataTable(SQL);
- if (DTPriceList.Rows.Count > 0)
- {
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["Annual"])))
- {
- Annual = Convert.ToDouble(DTPriceList.Rows[0]["Annual"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["KidsUnderAge"])))
- {
- UnderAge = Convert.ToDouble(DTPriceList.Rows[0]["KidsUnderAge"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["OverAgeChildPrice"])))
- {
- OverAge = Convert.ToDouble(DTPriceList.Rows[0]["OverAgeChildPrice"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["OverAgeChildPrice"])))
- {
- OverAge = Convert.ToDouble(DTPriceList.Rows[0]["OverAgeChildPrice"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["BabySitter"])))
- {
- BabySitter = Convert.ToDouble(DTPriceList.Rows[0]["BabySitter"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["ManagmentFees"])))
- {
- ManagmentFees = Convert.ToDouble(DTPriceList.Rows[0]["ManagmentFees"]);
- }
- if (!string.IsNullOrEmpty(Convert.ToString(DTPriceList.Rows[0]["CardFees"])))
- {
- CardFees = Convert.ToDouble(DTPriceList.Rows[0]["CardFees"]);
- }
- TotalUnderAge = ChildUndrAge(MemberCode);
- TotalOverAge = ChildOverAge(MemberCode);
- CountCard = GetCountCards(MemberCode);
- if(CountCard > 0)
- {
- TotalCardAmount = CountCard * CardFees;
- }
- if (TotalUnderAge > 0)
- {
- TotalUnderAge = TotalUnderAge * UnderAge;
- }
- if (TotalOverAge > 0)
- {
- TotalOverAge = TotalOverAge * OverAge;
- }
- if (BabySiter(MemberCode) == false)
- {
- BabySitter = 0;
- }
- TotalAnnual = (Annual + TotalUnderAge + TotalOverAge + BabySitter + ManagmentFees + TotalCardAmount);
- NetTotalAnnual = TotalAnnual;
- int Diff = DiffDate(MemberCode);
- if (Diff < 12 && Diff !=0)
- {
- double CustomAnnual = TotalAnnual / 12;
- TotalAnnual = Math.Round(CustomAnnual * Diff, 2);
- }
- if (Diff ==0)
- {
- TotalAnnual = 0;
- }
- if (TotalAnnual > 0)
- {
- TotalDue= CridtValue1 = Math.Round((TotalAnnual / Tax),2);
- TotalTax = TotalAnnual - TotalDue;
- CridtValue2 = Math.Round(TotalAnnual - CridtValue1, 2);
- }
- }
- }
Under button show this code is written
- if (!string.IsNullOrEmpty(txtYear.Text))
- {
- string Sql = "Select * From View_MembersWithPriceList where (RelatedMemberCode IS NULL) and (Member ='True') AND (Year = " + txtYear.Text + ")";
- DT = DataAccess.ExecuteDataTable(Sql);
- if (DT.Rows.Count > 0)
- {
- Grid.DataBinding(DT);
- for (int i = 0; i < Grid.Rows.Count; i++)
- {
- MemberCode = Convert.ToString(Grid.Rows[i].Cells["MemberCode"].Value);
- if (!string.IsNullOrEmpty(MemberCode))
- {
- GetMemberAccount(MemberCode);
- Grid.Rows[i].Cells["AnnualValue"].Value = Annual;
- Grid.Rows[i].Cells["OverAge"].Value = TotalOverAge;
- Grid.Rows[i].Cells["UnderAge"].Value = TotalUnderAge;
- Grid.Rows[i].Cells["BabySitter"].Value = BabySitter;
- Grid.Rows[i].Cells["NetTotal"].Value = NetTotalAnnual;
- Grid.Rows[i].Cells["TotalDue"].Value = TotalAnnual;
- Grid.Rows[i].Cells["Total"].Value = TotalDue;
- Grid.Rows[i].Cells["TotalTax"].Value = TotalTax;
- }
- }
- }
- }