Я пытаюсь использовать определяемый пользователем тип данных с C# и SQL Server 2008, но у меня возникает исключение при выполнении команды command.ExecuteReader().
string qyery = "SELECT * FROM Product WHERE IsAvailableProduct < @Param";
SqlCommand command = new SqlCommand(qyery, conn);
SqlParameter param = new SqlParameter("@Param", SqlDbType.Structured);
param.UdtTypeName = "MyBolean";
param.SqlDbType = SqlDbType.Structured;
param.Value = 1;
command.Parameters.Add(param);
SqlDataReader reader = command.ExecuteReader();
Возникшее исключение:
Failed to convert parameter value from a Int32 to a IEnumerable``1.
Что не так в моем коде?
ИЗМЕНИТЬ :
Если я изменю SqlDbType на Udt, у меня будет следующее исключение: Specified type is not registered on the target server.System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
Если я установлю для свойства DbType значение Int (что является базовым типом "MyBolean"), результатом будет исключение Failed to convert parameter value from a Int32 to a IEnumerable
1.``.
ИЗМЕНИТЬ :
Я изменил заголовок, потому что в SQL Server 2008 это «Определяемый пользователем тип данных», а не «Определяемые пользователем типы».