Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 递归地向DataTable中的datetime值添加分钟数_Asp.net_Sql Server_Vb.net_Datetime_Datatable - Fatal编程技术网

Asp.net 递归地向DataTable中的datetime值添加分钟数

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

我有一个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.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之前,现在它按预期工作。这就是为什么我问你得到的结果。解决方法