ASP.NET DropDownList1 数据绑定的效率

 

在CodeProject上看到一篇数据绑定的测试评论,该评论已经被MVP认可了,我对这样的结果也感到十分的惊讶,看来,以后在写代码的习惯上要稍微有些修改了.

先给出测试的代码:

public void initList(DataTable dt)
{
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "empName";
DropDownList1.DataValueField = "empNumber";
DropDownList1.DataBind();
}

public void initList2(DataTable dt)
{
foreach (DataRow r in dt.Rows)
{
    DropDownList2.Items.Add(new ListItem(r["empName"].ToString(), r["empNumber"].ToString()));
}
}

public void initList3(DataTable dt)
{
foreach (DataRow r in dt.Rows)
{
    DropDownList3.Items.Add(new ListItem(r[0].ToString(), r[1].ToString()));
}
}
initList的效率比initList2和initList3的效率低可能十倍以上(太可怕了,我是没有认真测试过,但是估计有点夸张),initList2和initList3的效率差不多,但是initList3的效率会比initList2的效率高些,因为使用列号的代码不用在绑定的时候绑定的名称不用转换为对应的下标,并关联的数据源中的数据.还有,使用列号的时候,会使用Cache的,但并不是每次都会用到.所以使用initList3的数据绑定才是效率最高的.

原文地址:https://www.cnblogs.com/cwy173/p/1564841.html