我正在VB中的asp.net中构建预约系统Web应用程序,
我只是想检查是否在从日历控件中选择的日期进行了约会。我正在使用Linq进行绑定,但是日历中的格式是mmddyyyy,当我需要ddmmyyyy时,我的约会进入int sql表,因为是20/09/2012 10:00:00
尝试在db.apps中使用p中的linq 其中p.date = mycontrol.selecteddate
不会产生结果
添加了一些代码: -
Dim myDate As Date = appCalender.SelectedDate
Dim stat = From a In db.Appointments
Where a.dateAndTime = DateTime.Parse(myDate).ToString("ddMMyyyy")
Select New With {a.dateAndTime}
Dim myList As List(Of String) = Nothing
For Each a In stat
myList.Add(a.dateAndTime)
Next
ListBox1.DataSource = myList
ListBox1.DataBind()
我不确定代码DateTime.Parse ,,,,是否正确,我从日历中选择的所选日期有很多任命,但我认为DateTime格式没有正确地转换为SQL
SQL中的约会数据类型是datetime
答案 0 :(得分:0)
您没有比较相同的数据类型。
Where a.dateAndTime = DateTime.Parse(myDate).ToString("ddMMyyyy")
如果数据库(和Linq)中的列是DateTime,则“=”右侧的值是一个字符串。它不会匹配。试试这个?
Where a.dateAndTime = DateTime.Parse(myDate)
修改
此外,您似乎只是从日历中获取日期,而不是时间:
Dim myDate As Date = appCalender.SelectedDate
但是你说你的日期存储为“20/09/2012 10:00:00”
20/09/2012 10:00:00!= 20/09/2012 00:00:00
可能发生了什么。
试试这个
Dim myDate As DateTime = DateTime.Parse(appCalender.SelectedDate)
Dim stat = From a In db.Appointments
Where a.dateAndTime >= myDate And a.dateAndTime < myDate.AddDays(1)
Select New With {a.dateAndTime}