当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-24
我正在使用TVP,我正在尝试将数据表作为TVP传递给存储过程.当命令尝试ExecuteNonQuery时,它会抛出一个错误: 操作数类型冲突:datetime2与int不兼容.表值参数“@tvpPermitWork”的数据不符合参数
我正在使用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));
网友评论