Преимущество: у вас есть четкий контроль над тем, каким SqlDbType
будет параметр.
В противном случае ADO.NET должен сделать предположение, основываясь на значении, которое вы предоставляете, например, в .AddWithValue
метод.Эти догадки в большинстве случаев довольно хороши - но если вы, например, предоставите DBNull.Value
, сделать довольно хорошо продуманное предположение будет немного сложно ...
Кроме того, если вы предоставите строку, эточасто полезно иметь возможность указывать макс.длина этого строкового параметра (x
в определении VARCHAR(x)
в вашем сохраненном процессе).Если вы этого не сделаете, ADO.NET будет использовать текущую длину, а иногда это может быть хорошо или плохо.
В целом: это просто дает вам больше контроля, и это более четко / ясноваши намерения.