c# - 无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序

标签 c# sql sql-server ssis

我在执行 SQL 任务中执行了一个简单的查询 -

SELECT col1, col2
from thetable
where code = ?
order by id asc

执行 sql 任务 - ADO.NET 连接 参数“code”在SSIS中是int32,在exec sql任务的参数映射中是int32。

它在 SQL Server 中工作正常,但在 SSIS 中会导致错误 -

[执行 SQL 任务] 错误:执行查询“SELECT col1, col2 从他们...”失败并出现以下错误:“无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序。错误消息“'?'附近的语法不正确。'。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。

如何修复此错误?

最佳答案

ADO.NET 对参数使用不同的语法 (@) - Map Query Parameters to Variables in an Execute SQL Task

您正在使用 ? 作为参数标记,它适用于 OleDb 和 ADO,但不适用于 ADO.NET。尝试将 ? 替换为 @code,然后在参数映射中将参数名称更改为 @code:

SELECT col1, col2
from thetable
where code = @code
order by id asc

enter image description here

关于c# - 无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792763/

相关文章:

sql-server - SQL Server : IN ('asd' ) not working when column is NTEXT

c# - x is null 和 ReferenceEquals(x, null) 之间有区别吗?

c# - 使用 C# 将数据 append 到现有的 Excel 文件

PHP session - 具有 1 个 IP 的多个用户

mysql - 选择查询忽略字段

来自多个表的 MySQL 最喜欢的项目

c# - 导出到 Excel - 防止电话号码在 C# 中使用科学记数法

c# - 在 C# 中为 p/invoke 创建一个基本的 C++ .dll

mysql - DBMS 中最先进的 self 修复和 self 保护

sql - 如何删除所有表中的所有外键约束?