Я обнаружил странную проблему в фрагменте кода, когда специальный запрос 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
Кто-нибудь может объяснить такое поведение? Это как-то намеренно? Если так, то это потенциально довольно опасно ...