VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?

2026-05-08 12:303阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计311个文字,预计阅读时间需要2分钟。

VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?

我在使用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是如何配置的?它应该包括:

VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?

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

本文共计311个文字,预计阅读时间需要2分钟。

VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?

我在使用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是如何配置的?它应该包括:

VB.NET中如何解决ADO.Net TVP操作时datetime2与int类型不兼容的问题?

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