Я получил своего партнера, который использует SVN для извлечения исходного кода, и, как и ожидалось, обнаружил ошибку в исходном коде SS.
Когда имя столбца задано в оболочке класса, установщик свойства ColumnName правильно устанавливает свойство ParamaterName, используя
"parameterName = Utility.PrefixParameter (Utility.StripNonAlphaNumeric (columnName), Table.Provider);". Это удалит все недопустимые символы, такие как дефис в моем столбце электронной почты.
НО ... Свойство ParameterName НЕ используется при создании команд SQL. Вот код в SQLDataProvider.GetInsertSQL, строка 1462.
pars.Append (Utility.PrefixParameter (colName, this));
Я изменил это на
pars.Append (col.ParameterName);
и проблема теперь решена.
Спасибо вам, что нашли возможные решения.