想知道是否有人可以解释在从我的datetimepicker表单获取信息时导致此查询返回错误数据的原因
在表单加载时,会发生以下命令
Private Sub frm_3_viewincident_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'clears the start date dtp box
dtp_startdate.Visible = True
dtp_startdate.Format = DateTimePickerFormat.Custom
dtp_startdate.CustomFormat = " "
end sub
这使得datetimepicker按预期为空白
当值改变时,我发出以下命令
Private Sub dtp_startdate_ValueChanged(sender As Object, e As EventArgs) Handles dtp_startdate.ValueChanged
'changes format to dd/mm/yyyy
dtp_startdate.Format = DateTimePickerFormat.Custom
dtp_startdate.CustomFormat = "dd/MM/yyyy"
End Sub
然后,这会将所选日期显示为15/10/2014。现在,如果我输入2015年3月1日的日期为2015年3月1日并运行以下查询
select * from incident where [incident date] > #" & dtp_startdate.Text & "#
而不是从3月1日起返回任何结果,而是从1月3日开始返回所有结果。数据库采用短日期格式dd / mm / yyyy与dtp格式相同,所以我不确定是什么造成的。有人可以建议吗?
答案 0 :(得分:1)
尝试使用
"select * from incident where [incident date] > #" & dtp_startdate.Value.ToString("yyyy-MM-dd") & "# "
因为这个日期格式比dd / MM / yyyy或MM / dd / yyyy
更不明确您还应该考虑在查询中使用参数而不是字符串连接。