Всего один ответ: используйте параметризованные запросы .
Это по разным причинам:
- безопасность (без риска 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