2017-04-03 18 views
0

我有我傳遞給DataTable的SQL Server表,我得到這樣的:Recursivly加分鐘時間值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) 

所以這是結果我想: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: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是另一個事件,就像Todo5 30應該成爲01:00-01:30。該函數不起作用,並且在VS2015中,我得到「無法設置斷點錯誤」,所以我問你我做錯了什麼。謝謝。

+0

你需要能夠用斷點調試你的代碼,看看這裏解決這個問題,然後你可以正確地找出你真正的問題的答案。 http://stackoverflow.com/questions/31644074/upgrade-to-visual-sudio-2015-and-now-cant-hit-break-points-in-debuging – Seano666

+0

你現在得到的結果是什麼?有些東西看起來在你的代碼中。 – codeMonger123

+0

@ codeMonger123現在我在00:00-00:030得到所有事件我可以想到IF條件的一些問題。當涉及數據時,我可能無法對「00」做這件事嗎? –

回答

0

對不起,我沒有意識到我是在循環中填充dt,所以我只是在For之前移動了da.Fill(dt)部分,現在它按預期工作。

+0

這就是爲什麼我問你得到的結果。儘管解決的方法 – codeMonger123