【发布时间】:2013-09-18 05:46:22
【问题描述】:
我有一个包含大约 10 万条记录的数据表。 Datatable 有多个包含一些整数值的列。我需要添加这些整数值并将其写入列Total Count 和Common Count。我正在使用以下代码,但大约需要 10-15 秒。我怎样才能有效地做到这一点??
编辑部分开始
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@pudTowerList", SqlDbType.VarChar, 8000).Value = cellId;
cmd.Parameters.Add("@pudTowerCol", SqlDbType.VarChar, 8000).Value = cellIdCol;
sqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
SqlCon.Close();
cmd.Dispose();
编辑部分结束
在这里我编辑这个数据表,然后在最后绑定到 gridview
foreach (DataRow drow in dt.Rows)
{
int nTotalCount = 0;
int nCommonCount = 0;
for (int i = 2; i < nColumnCount; i++)
{
nTotalCount += int.Parse(drow[i].ToString());
if (int.Parse(drow[i].ToString()) != 0)
{
nCommonCount += 1;
}
}
drow["Total Count"] = nTotalCount; // On commenting this lines it runs fast
drow["Common Count"] = nCommonCount; // On commenting this lines it runs fast
}
【问题讨论】:
-
但是如果它是只读的.. 我怎么能编辑值
-
@Anirudh 我不会在数据库中插入总数。这仅用于显示网格中的值。请查看我编辑的问题,完整显示我在做什么
-
据我了解,nTotalCount 是所有列值的总和,nCommonCount 是第一个。不为零的列值。我理解正确了吗?请澄清。