仅有一个答案:使用参数化查询。
这是由于不同的原因:
- 安全性(不存在SQL注入风险
- 不再是您正在打开主题的那些问题
- 表现。
因此,这样编写您的语句:
SqlCommand cmd = new SqlCommand();cmd.CommandText = "SELECt * FROM Jobs WHERe JobDate = @p_Date"cmd.Parameters.Add ("@p_Date", SqlDbType.DateTime).Value = dtpJobDate.Value;如果您想忽略时间,那么我认为最好的选择是进行范围搜索(如果时间存储在数据库中)。这样的事情(只是SQL查询):
SELECt * FROM Jobs WHERe JobDate >= @p_StartDate AND JobDate < @p_EndDate
StartDate将是
dtpJobDate.Value.Date,EndDate将是
dtpJobDate.Value.Date.AddDays(1)
如果时间未存储在数据库中,则可以执行以下操作:
SELECt * FROM Jobs WHERe JobDate = @p_Date
搜索参数应该在哪里
dtpJobDate.Value.Date



