如何批量操作 DataTable中某一列的值

rooney321 2007-07-18 02:18:58
现有一DataTable dt
列名如下: Id,StartTime 其中StartTime中存储的为日期格式的数据
如何批量操作,使得DataTable的数据能新增加一列Cost,Cost的值为当前时间与StartTime的时差

例如:假设当前时间为2007-07-18 15:00:32

1 2007-07-18 10:10:32
2 2007-07-18 11:10:32
3 2007-07-18 12:10:32

使其变为
1 2007-07-18 10:10:32 5:10:00
2 2007-07-18 11:10:32 6:10:00
3 2007-07-18 12:10:32 7:10:00


...全文
672 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyata 2007-07-18
  • 打赏
  • 举报
回复
代码如下:
DataColumn dc = new DataColumn("差值");
TimeSpan TimTemp;
DateTime dtDateInit = DateTime.Now;

dc.DataType = System.Type.GetType("System.DateTime");

dt.Columns.Add(dc);

for (int i = 0; i < dt.Rows.Count; i++ )
{
TimTemp = dtDateInit.Subtract(dt.Rows[i][1]);
dt.Rows[i][2] = TimTemp;
}

我没有调试,你试试看看,差不多是这样的
北京的雾霾天 2007-07-18
  • 打赏
  • 举报
回复
你可以使用如下的方法向DataTable的Columns添加一个表达式列

DataTable.Columns.Add 方法 (columnName, type, expression)

然后面表达式中不能用来获取当前日期的值,所以你只能使用循环来一个个的更新记录。
BearRui 2007-07-18
  • 打赏
  • 举报
回复
应该只能1条记录1条记录的更新!!!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧