我要问这个,因为它令我烦恼,我无法找到这个问题的具体来源。我知道如何在Sql Server中使用TVP(表值参数),我在存储过程中使用它进行批量插入。所以基本上我在SQL创建表类型的表的相应列/字段我要插入记录和它工作正常,我从代码(C#),以SQL存储过程,现在这里是我的问题:最近,当用户尝试插入多条记录,也有在表中的参数某些随机域当它试图执行存储过程(基本上在C#中,因为它会抛出一些错误),让这种错误的消息。SQL Server Table Valued Parameter列不受支持。该类型是“对象”
列的类型 '{字段}' 不被支持。 'Object'的类型是
在每一次出现的错误信息中的字段都会改变,所以我知道问题出在数据中,但我不知道它是什么。顺便说一句,这是我如何从我的源数据传输到将用作插入参数数据表:
dr["{field_name}"] = {value}
更新:我想更详细地说明我如何转院值的数据表。基本上,我将通过
table.Rows.Cast<DataRow>().ToList().ForEach(action => {statements})
通过在数据表中的所有行尝试环路,则在foreach里面,我给你
action["{field_name}"] = action["{field_name}"].{formatting_function}
我需要这个格式化的数据被插入到前数据库,例如。转换为大写或小写或转换为特定类型,例如。布尔值。
这听起来像您的{}值之间的铸造问题和{} FIELD_NAME的类型。 – 2015-07-23 13:22:12
那些特定的随机场是什么类型?这听起来对我来说也是一个铸造问题。在将它们传递给DataRow项目之前,您是否尝试将值转换为对象类型? – Engin 2015-07-29 18:15:10