Я заметил странную проблему в куске кода, где adhoc SQL-запрос не выдавал ожидаемый результат, хотя его параметры соответствовали записи в источнике данных. Я решил ввести следующее тестовое выражение в ближайшее окно:
new SqlParameter("Test", 0).Value
Это дало результат null
, что заставило меня почесывать голову. Кажется, что конструктор SqlParameter
обрабатывает нули как нули. Следующий код дает правильный результат:
SqlParameter testParam = new SqlParameter();
testParam.ParameterName = "Test";
testParam.Value = 0;
// subsequent inspection shows that the Value property is still 0
Может ли кто-нибудь объяснить это поведение? Это как-то преднамеренно? Если это так, это потенциально опасно...