1

私はVBのasp.netで予約予約システムのWebアプリケーションを構築しています.

カレンダー コントロールから選択した日付に予定が作成されているかどうかを確認しようとしています。バインディングにLinqを使用していますが、ddmmyyyyが必要な場合、カレンダーの形式はmmddyyyyです。予定は20/09/2012 10:00:00のようにint sqlテーブルに入力されました

p.date = mycontrol.selecteddateのdb.appsでpからlinqを使用しようとしています

結果が出ない

いくつかのコードが追加されました:-

 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 です

4

1 に答える 1

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」として保存されていると言います

2012/09/20 10:00:00 != 2012/09/20 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}
于 2012-04-19T14:11:31.307 に答える