VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计311个文字,预计阅读时间需要2分钟。
我在使用TVP,尝试将数据表操作作为TVP传递给存储过程。在执行NonQuery命令时,出现一个错误:操作数类型冲突: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));
本文共计311个文字,预计阅读时间需要2分钟。
我在使用TVP,尝试将数据表操作作为TVP传递给存储过程。在执行NonQuery命令时,出现一个错误:操作数类型冲突: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));

