我有一个非常简单的问题。我的 VB.NET 表单上有几个日期选择器控件,用户选择“startDate”和“endDate”,并显示相关表中的所有行,这些行在orderDate
用户选择的开始日期和结束日期之间。
以下是相关代码:
Private Sub generate_report_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles generate_report.Click
Try
Dim con As New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\KHMSDB.accdb"
con.Open()
Dim sql As String
Dim selected As String = ""
Dim ds As DataSet = New DataSet
Dim adapter As New OleDb.OleDbDataAdapter
sql = "SELECT OrderDate AS `Order Date and Time`, Items AS `Ordered Items` FROM Orders WHERE Format(Orders.OrderDate,'mm/dd/yyyy') >= #" + startDate.Value.Date + "# AND Format(Orders.OrderDate,'mm/dd/yyyy') <= #" + endDate.Value.Date + "#"
adapter.SelectCommand = New OleDb.OleDbCommand(sql, con)
adapter.Fill(ds)
gridReport.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox("Operation failed. " + ex.ToString)
End Try
如果我在今天的日期下在数据库中保存一个新行,并将“开始”和“结束”日期都保留为默认日期(即今天的日期),它不会显示我刚刚保存的新行。只有当我将“开始日期”移至 11 月 30 日时,今天输入的新行才会显示。然后我添加一个日期为 12 月 12 日的新行。同样,当我选择结束日期为 >= 12 月 12 日时它不会显示,它只会在我将开始日期移至 12 月 1 日时显示。我决定输入日期为 11 月 21 日的行,并在 11 月 21 日运行开始日期和结束日期的查询会显示该行。然后我在 1 月 8 日输入了一个新行。现在向上移动 startDate 和/或向下移动 endDate 的任何组合都不会显示一月份的订单。这是怎么回事??我'