Я присваиваю объекты этому списку SqlParameter и затем пытаюсь выполнить SqlCommand, но он выдает исключение, говорящее, что один из объектов не может быть преобразован в SqlDbType. Предпочтительно я хочу обработать такие объекты перед добавлением их в список сбора параметров. Итак, как мне проверить, является ли значение, добавляемое в список параметров, хорошим / правильным или нет? Какое свойство я должен проверить?
Вот мой код:
bool Submit(Progs progs, CommandType commandType, string commandText)
{
try
{
List<SqlParameter> paramCollection = new List<SqlParameter>();
foreach(Prog p in progs)
{
SqlParameter spTemp = new SqlParameter { ParameterName = p.Name , Value = p.Value};
paramCollection.Add(spTemp);
using (SqlConnection con = GetConnection())
{
SqlCommand cmd = new SqlCommand { CommandType = commandType, CommandText = commandText, Connection = con };
con.Open();
cmd.Parameters.AddRange(paramCollection ); // Exception is thrown from this line
cmd.ExecuteNonQuery();
}
return true;
}
catch(Exception exc)
{
return false;
}
}
В исключении говорится:
Нет сопоставления между типом объекта sol2.CodeBase.BL.Letter [] и собственным типом известного управляемого поставщика.
PS: есть свойство для SqlParameter с именем ParamaterIsSqlType (да, это paramAter, а не paramEter), которое появляется только во время выполнения (т. Е. Когда я проверяю spTemp с точкой останова на следующей строке) который всегда установлен в ложь? Что это за свойство, так что оно появляется только во время выполнения ??? Кроме того, какое значение указывает этот «ParamaterIsSqlType»?