Asp.net 递归地向DataTable中的datetime值添加分钟数
我有一个sql server表,我将其传递给一个datatable,我得到如下结果:Asp.net 递归地向DataTable中的datetime值添加分钟数,asp.net,sql-server,vb.net,datetime,datatable,Asp.net,Sql Server,Vb.net,Datetime,Datatable,我有一个sql server表,我将其传递给一个datatable,我得到如下结果: ID WHAT START END 120548 TODO1 2017-03-27 00:00:00.000 2017-03-27 00:30:00.000 120549 TODO2 2017-03-27 00:00:00.000 2017-03-27 00:30:00.000 120463 TODO3 2017-03-27 14:00:00
ID WHAT START END
120548 TODO1 2017-03-27 00:00:00.000 2017-03-27 00:30:00.000
120549 TODO2 2017-03-27 00:00:00.000 2017-03-27 00:30:00.000
120463 TODO3 2017-03-27 14:00:00.000 2017-03-27 15:00:00.000
120557 TODO4 2017-03-27 09:30:00.000 2017-03-28 12:30:00.000
请注意Todo1和Todo2,它们具有相同的开始和结束时间。我想将Todo2和每一个可能的下一个事件(仅当开始和结束时间为00:00-00:30)增加半小时,所以我做了这个函数:
Dim dt As New DataTable()
Dim oraInizio As DateTime
Dim oraFine As DateTime
Dim minuti As Integer = 0
For Each row In dt.Rows
oraInizio = row("eventstart")
oraFine = row("eventend")
If Convert.ToDateTime(row("eventstart")).Hour = "00" And Convert.ToDateTime(row("eventstart")).Minute = "00" Then
oraInizio = oraInizio.AddMinutes(minuti)
oraFine = oraFine.AddMinutes(minuti)
row("eventstart") = oraInizio
row("eventend") = oraFine
minuti = minuti + 30
End If
Next
da.Fill(dt)
这就是我希望的结果:
ID WHAT START END
120548 TODO1 2017-03-27 00:00:00.000 2017-03-27 00:30:00.000
120549 TODO2 2017-03-27 00:30:00.000 2017-03-27 01:00:00.000
120463 TODO3 2017-03-27 14:00:00.000 2017-03-27 15:00:00.000
120557 TODO4 2017-03-27 09:30:00.000 2017-03-28 12:30:00.000
注意,如果有其他事件,如00:00-00:30的Todo5,则应变为01:00-01:30。该函数不起作用,在VS2015中,我得到了“无法设置断点错误”,因此我问您我在该函数中做错了什么。谢谢。对不起,伙计们,我没有意识到我在循环后填充了dt,所以我只是将da.Fill(dt)部分移到For之前,现在它可以正常工作。您需要能够使用断点调试代码,看看这里来解决这个问题,然后您可以正确地找到真正问题的答案。你现在得到的结果是什么?您的代码中似乎有问题。@codeMonger123现在我在00:00-00:030获得所有事件,我可以考虑IF条件的一些问题。当涉及到数据时,也许我不能对“00”执行此操作?抱歉,伙计们,我没有意识到我在循环后填充了dt,所以我只是将da.Fill(dt)部分移到For之前,现在它按预期工作。这就是为什么我问你得到的结果。解决方法