Лучший способ выполнить запросы БД из кода - это вызывать хранимые процедуры, если это возможно. Однако, независимо от того, делаете вы это или нет, вы захотите использовать объект SqlParameter
, инициализированный с нужной вам датой.
DateTime dateToCheck = DateTime.Now;
using(SqlCommand cmd //Set Command Here)
{
cmd.CommandType = SqlCommandType.Procedure;
//Doing this from memory, but that line should be pretty close
cmd.Parameters.AddWithValue("@dateToCheck", dateToCheck);
//Continue with call to DB as normal
}
Один не здесь, некоторые люди указывают тип «DateTime» на их SqlParameter
объекте, но я никогда не делал этого, и он пока не вернулся, чтобы укусить меня. Я считаю (опять же, работая здесь без памяти), что если вы используете тип System. [Что угодно], SqlParameter может автоматически назначить ему правильный тип Sql. Таким образом, передача строки может все же привести к строке, но передача DateTime приведет к DateTime.