我从数据库中查询出一数据集,大约有3万到10万条,但还不能满足用户的需求,还需要在此基础上增加一列,而这一列的数据是
根据每一行数据中的其中的两个字段值来获取的,我现在的代码是循环检索:dt:检索出的数据集,3万到10万条;
zd:字典表,三个字段,两个是条件,一个是需要的值;for (int i = 0; i < dt.Rows.Count; i++)
{
System.Data.DataView dv = zd.Copy().defaultView;
dv.RowFilter = "dm='"+dms+"' and jg='"+jgs+"'";
string zhi = dv[0]["zhi"].ToString();
dt[i]["zhi"] = zhi;
dv.Dispose();
}
现在功能倒是能实现,但效率很低,请教大家能给出更好的、效率更高的解决方案!谢谢大家,谢谢!!!
根据每一行数据中的其中的两个字段值来获取的,我现在的代码是循环检索:dt:检索出的数据集,3万到10万条;
zd:字典表,三个字段,两个是条件,一个是需要的值;for (int i = 0; i < dt.Rows.Count; i++)
{
System.Data.DataView dv = zd.Copy().defaultView;
dv.RowFilter = "dm='"+dms+"' and jg='"+jgs+"'";
string zhi = dv[0]["zhi"].ToString();
dt[i]["zhi"] = zhi;
dv.Dispose();
}
现在功能倒是能实现,但效率很低,请教大家能给出更好的、效率更高的解决方案!谢谢大家,谢谢!!!
在RowFilter 后面加上一个if 吧...如果没有数据,会出现的在for里面加上
if ( (i % 1000) == 0 ) Application.DoEvents();