C# 未能创建IDataAdapter对象。执行SQL任务可能不完全支持此提供程序
我在执行SQL任务中执行了一个简单的查询-C# 未能创建IDataAdapter对象。执行SQL任务可能不完全支持此提供程序,c#,sql,sql-server,ssis,C#,Sql,Sql Server,Ssis,我在执行SQL任务中执行了一个简单的查询- SELECT col1, col2 from thetable where code = ? order by id asc Exec sql任务-ADO.NET连接 参数“code”是SSIS中的int32,是exec sql任务的参数映射中的int32 它在SQL server中工作正常,但在SSIS中会导致错误- [Execute SQL Task]错误:执行查询“SELECT col1,col2 “从thet…”失败,出现以下错误:“未能创建
SELECT col1, col2
from thetable
where code = ?
order by id asc
Exec sql任务-ADO.NET连接
参数“code”是SSIS中的int32,是exec sql任务的参数映射中的int32
它在SQL server中工作正常,但在SSIS中会导致错误-
[Execute SQL Task]错误:执行查询“SELECT col1,col2
“从thet…”失败,出现以下错误:“未能创建IDataAdapter对象。执行SQL任务可能不完全支持此提供程序。错误消息“附近的语法不正确?”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接建立不正确
如何修复此错误 ADO.NET对参数使用不同的语法(@)—— 您正在使用
?
作为参数标记,它适用于OleDb和ADO,但不适用于ADO.NET。尝试将?
替换为@code
,然后在参数映射中,将参数名称更改为@code:
SELECT col1, col2
from thetable
where code = @code
order by id asc
是的,我这样尝试了多个参数-@p1、@p2、@p3、@p4等等,@和名称之间没有空格。虽然ADO.NET连接似乎比OLEDB慢一点,但有时这种事情只是由于随机原因发生的。我通过从文件的旧版本复制任务解决了这个问题。工作。