从Dataset填充DataGrid

时间:2011-10-27 06:13:22

标签: c#

我想问一下从数据集填充datagrid的更快方法。我正在处理大量数据(大约8000行)。我正在使用C#.net。我有两个版本的代码(下面),他们都花了差不多一分钟来完成数据的加载。

// First Code
DataSet objDataSet = new DataSet();
objDataSet = objMemberShip.mtdMemberViewBy(strGlobalUserID, 0, "", ref intErrNo);
datagrid1.DataSource = objDataSet.Tables[0];

// Second Code
objDataSet = objMemberShip.mtdMemberViewBy(strGlobalUserID, 0, "", ref intErrNo);

datagrid1.Rows.Clear();
for (int intCount = 0; intCount <= objDataSet.Tables[0].Rows.Count - 1; intCount++)
{
   string[] strRow = new string[] { objDataSet.Tables[0].Rows[intCount] ["trTranId"].ToString(), objDataSet.Tables[0].Rows[intCount]["strCEMCode"].ToString(),
                                  objDataSet.Tables[0].Rows[intCount]["strName"].ToString(), objDataSet.Tables[0].Rows[intCount]["strAddress"].ToString(),
                                  objDataSet.Tables[0].Rows[intCount]["strTestCenterId"].ToString(), objDataSet.Tables[0].Rows[intCount]["TCr_Name"].ToString(),
                                  objDataSet.Tables[0].Rows[intCount]["strMemberId"].ToString(), objDataSet.Tables[0].Rows[intCount]["TCr_GL_Code"].ToString()};
            datagrid1.Rows.Add(strRow);

}

2 个答案:

答案 0 :(得分:1)

第一种方法应该没问题我相信MS在数据绑定中做得很好,你自己的循环也不会更快。是加载数据或绑定到网格的延迟?如果你有太多的行你应该页面,因为一次显示数千行是没有意义的。

答案 1 :(得分:0)

确定大部分时间的线路。它可能 是这一行 -

objDataSet = objMemberShip.mtdMemberViewBy(strGlobalUserID,0,“”,ref intErrNo);

可能是一个可能在数据库中调用过程的服务调用。延迟也可以在程序级别。