在datagridview中显示数据时,虽然数据不多,为什么以及如何减少时间,但需要花费太多时间 [英] When Display data in datagridview it take too much time although data not more why and how to reduce time
本文介绍了在datagridview中显示数据时,虽然数据不多,为什么以及如何减少时间,但需要花费太多时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问题
在datagridview中显示数据时,虽然数据不多,为什么以及如何减少时间,但需要花费太多时间。
datagridview windows窗体中的数据显示仅为325个成员,而不是大数据。
按下button按钮以显示datagridview中的数据需要花费太多时间
需要45分钟,这意味着需要花费3/4小时才能在datagridview中显示数据
为什么以及如何减少时间
private void GetMemberAccount(string MemberCode)
{
Tax = GetTax();
DataTable DTPriceList;
年度= 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] ["保姆"]);
}
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 =(年度+ 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);
}
}
}
在按钮下显示此代码已写入
if(!string.IsNullOrEmpty(txtYear.Text))
{
string Sql =" Select *从View_MembersWithPriceList,其中(RelatedMemberCode IS NULL)和(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"]值)。
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;
}
}
}
解决方案
任何人都可以帮助我
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; } } }
解决方案
can any one help me
这篇关于在datagridview中显示数据时,虽然数据不多,为什么以及如何减少时间,但需要花费太多时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文