0
將時間值out of datetime列轉換爲12小時格式我的應用程序允許用戶進行會議約會。約會保存到數據庫之前,用戶從日曆控件中選擇一個日期。選擇日期後,頁面應該從數據庫中獲取當天的約會列表,並檢查每個記錄約會的時間。任何已經預訂的時隙都將從DropDownList中移除,用戶將從中選擇一個方便的時間。DataReader.Read
問題出現在我的時間比較中。以下大部分代碼旨在將日期/時間值分開以獲得我可以比較的內容。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
PopulateTime()
End If
End Sub
Protected Sub PopulateTime()
Dim db As New Database
Dim sql As String = "select apptinterval from centres where centreid = @id"
Dim args As New List(Of SqlParameter)
args.Add(New SqlParameter("@id", Session("CentreID")))
Dim dr As SqlDataReader = db.GetReader(sql, args.ToArray)
Dim interval As Integer = 0
If dr.Read Then
interval = dr("apptinterval")
End If
Dim time = TimeSpan.FromHours(8)
While time < TimeSpan.FromHours(17)
time += TimeSpan.FromMinutes(interval)
ddlAppointmentTime.Items.Add(New ListItem(time.ToString, time.ToString))
End While
End Sub
Protected Sub calAppointmentDate_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles calAppointmentDate.SelectionChanged
Dim seldate As String = Left(calAppointmentDate.SelectedDate, 10)
Dim dateargs() As String = seldate.ToString.Split("/")
Dim newdate As String = dateargs(0) & "-" & dateargs(1) & "-" & dateargs(2)
GetTimes(newdate)
End Sub
Protected Sub GetTimes(ByVal TargetDate As String)
Dim db As New Database
Dim args As New List(Of SqlParameter)
Dim sql As String = "select apptdate from appointments where apptdate between @date1 and @date2 order by apptdate"
args.Add(New SqlParameter("@date1", TargetDate & " 12:00:00"))
args.Add(New SqlParameter("@date2", TargetDate & " 23:59:59"))
Dim dr As SqlDataReader = db.GetReader(sql, args.ToArray)
If dr.HasRows Then
dr.Read()
For i As Integer = 0 To ddlAppointmentTime.Items.Count - 1
If Left(ddlAppointmentTime.Items(i).Value, 5) = Mid(dr("apptdate"), 12, 5) Then
ddlAppointmentTime.Items.RemoveAt(i)
End If
Next
End If
dr.Close()
End Sub
如果這裏的循環,被返回Mid(dr("apptdate"), 12, 5)
價值爲01:00
。數據庫中的實際值爲13:00
。
任何人都可以提出爲什麼這種轉換髮生?它導致比較失敗,所以,該時隙不會從DropDownList中刪除。
在此先感謝!