Разница между Parameters.Add(string, object) и Parameters.AddWithValue

Я прочитал документацию MSDN и примеры здесьи знаю, что правильный синтаксис для вызова Paramters.Add:

   command.Parameters.Add("@ID", SqlDbType.Int);
   command.Parameters["@ID"].Value = customerID; 

Где вы необходимо указать имя параметра, SqlDbTypeИ значение с помощью .Value.

Теперь правильный синтаксис для вызова Parameters.AddWithValue:

   command.Parameters.AddWithValue("@demographics", demoXml);

Одна строка и пропустить часть Type.

Мой вопрос: почему, когда я делаю это таким образом,

   command.Parameters.Add("@demographics", demoXml);
   // .Add method with .AddWithValue syntax

я не получаю никаких ошибок компиляции и, что еще более странно, кажется, что все работает правильно, когда код выполняется?

49
задан jpaugh 19 April 2019 в 08:28
поделиться