1

という日付列を含むテーブルがありますPurchaseDate

月を表示するリストボックスがあります。月をクリックすると、dataSource にクエリを実行し、購入日が含まれる行を収集する必要がありますSelectedMonth

dv2 = New DataView(ds.Tables(0), "PurchaseDate LIKE '" & SelectedMonth & "/%'", "BillNo", DataViewRowState.CurrentRows)

このコードは機能していません。PurchaseDateこれは、「MM/DD/YYYY」のような日付形式であるためです。LIKE演算子を使用する前に、日付を文字列に変換する必要があると思います。私も以下のように使ってみました。それでも、うまくいきませんでした。

dv1 = New DataView(ds.Tables(0), "convert(varchar2(20),PurchaseDate,103) LIKE '" & SelectedMonth & "/%'", "BillNo", DataViewRowState.CurrentRows)

SelectedMonth「01」、「10」などの文字列になります。

4

2 に答える 2

1

このような問題を回避するには、Linq を使用します。

Dim selectedMonth = Int32.Parse(lbMonth.Text)
Dim filteredRows = From r In ds.Tables(0)
                   Where r.Field(Of Date)("PurchaseDate").Month = selectedMonth
' if you need a new DataTable
Dim tblFiltered = filteredRows.CopyToDataTable()
于 2012-12-18T08:51:08.977 に答える
0

使用しているデータベースがわからないので、これらは同じシナリオで使用するカルチャに依存しない日付リテラルです...

オラクル

TO_DATE('18-Dec-2012','dd-Mon-yyyy')

SQLサーバー

'18-Dec-2012'

Ms / Access(文化に依存しませんが、MS / Accessが受け入れるのはそれだけです)

#12/18/2012#

したがって、SQLをフォーマットして次のように言うことができます...

PurchaseDate BETWEEN  '1-Dec-2012' AND '31-Dec-2012'
于 2012-12-18T09:00:53.293 に答える