vb.net – ADO.Net表值参数(TVP) – 操作数类型冲突:datetime2与int不兼容

前端之家收集整理的这篇文章主要介绍了vb.net – ADO.Net表值参数(TVP) – 操作数类型冲突:datetime2与int不兼容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用TVP,我正在尝试将数据表作为TVP传递给存储过程.当命令尝试ExecuteNonQuery时,它会抛出一个错误

操作数类型冲突:datetime2与int不兼容.表值参数“@tvpPermitWork”的数据不符合参数的表类型.

我使用可视化工具检查了数据表,我发现所有数据都是正确的.我现在卡住了,我没有时间将其更改为具有单个参数的存储过程.

任何有关如何解决这个问题的建议都非常感谢.

解决方法

如果没有看到你的代码,很难确切知道发生了什么,但作为一个快速的猜测,你设置sqlParameter.sqlDbType = sqlDbType.Structured,sqlParameter.TypeName =“YourTableType”?

如果是这样,生成的T-sql是什么样的(你可以用sql Profiler看到它)?

你的表类型是如何声明的? – CREATE TYPE YourTableType as TABLE(…)

你的存储过程是如何声明的? – 创建PROC … @arg YourTableType READONLY …

您的DataTable是如何配置的?它应该包括

yourDataTable.Columns.Add("columnName",typeof(datetime2));

猜你在找的VB相关文章