递归地向DataTable中的datetime值添加分钟

6 浏览
0 Comments

递归地向DataTable中的datetime值添加分钟

我有一个sql服务器表格,我传给一个数据表格,我得到了这样的东西:

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中我得到了\"不能设置断点错误\",所以我问你,我在它里面做错了什么。谢谢。

admin 更改状态以发布 2023年5月24日
0
0 Comments

抱歉,大家,我没有意识到我在循环之后填充了dt,所以我只是把da.Fill(dt)放在For之前,现在它按预期工作了。

0