我正在尝试在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();
抛出的异常是:
无法将参数值从Int32转换为IEnumerable``1。
我的代码哪里有问题?
编辑:
如果我将SqlDbType更改为Udt,则会出现此异常:指定类型未在目标服务器上注册。System.Int32,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089。
如果我将DbType属性设置为Int(这是“MyBolean”的基本类型),则还会引发该异常:无法将参数值从Int32转换为IEnumerable
1.``
编辑:
我修改了标题,因为在SQL Server 2008中,它是“User Define DATA Type”,而不是“User Defined Types”。