Немного осторожно с небольшой разницей между Add и AddWithValue методами. У меня была проблема ниже, когда я использовал Add метод и поставил неправильный параметр SqlType .
nchar
и nvarchar
может хранить Unicode символов.
char
и varchar
не могут хранить Unicode символов.
Например:
string query = " ... WHERE stLogin LIKE @LOGIN ";
SqlParameter p = new SqlParameter("@LOGIN", SqlDbType.Char, 255)
{
Value = "%" + login + "%"
};
command.Parameters.AddWithValue(p.ParameterName, p.Value); //works fine!!!
command.Parameters.Add(p); // won't work
Когда я изменил SqlType на NVarChar , оба метода работали нормально для меня.
SqlParameter p = new SqlParameter("@LOGIN", SqlDbType.NVarChar, 255)
{
Value = "%" + login + "%"
};
command.Parameters.AddWithValue(p.ParameterName, p.Value); //worked fine!!!
command.Parameters.Add(p); //worked fine!!!