asp格式问题中的SQL datetime和calendar.selectedDate

时间:2012-04-19 13:53:59

标签: asp.net sql vb.net linq

我正在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

1 个答案:

答案 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}