我创建了一个存储过程,它采用表值参数,该参数是具有单列类型的表int
。这个想法是简单地将 id 列表传递给存储过程,并允许存储过程处理数据。但是,在没有数据传入的情况下,我遇到了问题(当我有数据时事情正常)。我正在将 a 转换为 a List<int>
,IEnumerable<SqlDataRecord>
并将其绑定到存储过程的表值参数。我试图绑定一个空的List<SqlDataRecord>
,这导致了错误:
System.ArgumentException:SqlDataRecord 枚举中没有记录。要发送不带行的表值参数,请改用空值引用。
然后我尝试绑定一个空值(我认为这是上面的消息所得到的),但这只会导致不同的错误消息
System.NotSupportedException:不支持参数“@MainItemIdList”的 DBNull 值。表值参数不能为 DBNull。
您似乎不能在存储过程声明中将表值参数声明为可为空。将空列表绑定到表值参数的正确方法是什么?