在c#中一次性更新数据表的所有单元格

时间:2014-05-01 08:15:10

标签: c# linq datatable

我有情况,我需要我的DataRows(字符串列)是HTMLEncoded。我们可以使用LINQ或任何其他方式一次更新DataRow的整个单元格吗?

基本上我想避免循环。

我有一个数据表oDt。 DataTable有以下列:id_season,season,modifiedon(date);

要保存此dataTable我有一个功能

Save Table(DataTable oDT){
    //Here I have to update modifedon column to DateTime.now;
     foreach(datarow dr in oDT.Rows)
     {
               dr[modifiedon] = DateTime.now;
     }
    // I need to avoid this loop as datatable can have 35000 + records
}

1 个答案:

答案 0 :(得分:0)

你必须更新每个元素,所以无论如何你都在看O(n)时间。 在我的系统上,更新35,000个元素需要0.01到0.03秒,350,000个项目需要0.1到0.3秒等等。通过在循环外获取DateTime.Now的值,可以获得小的性能提升:

var now = DateTime.Now;
foreach(DataRow dr in oDT.Rows)
{
    dr["ModifiedOn"] = now;
}