在datagridview中显示数据时,虽然数据不多,为什么以及如何减少时间,但需要花费太多时间 [英] When Display data in datagridview it take too much time although data not more why and how to reduce time

查看:84
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆