2012-08-08 80 views
12

在SSIS中的脚本任务内部,我需要调用SQL数据库。我将数据库添加到数据源文件夹时创建了连接字符串,但现在我不确定如何在C#代码中引用它。我知道如何在ASP网站的代码中做到这一点,但是SSIS似乎应该有一个更直接的方法。连接到SSIS脚本任务中的SQL数据库

EDIT

的这行代码实际上卷起抛出异常:

sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction); 

记载:“无法转换类型的COM对象‘System._ComObject’类类型“System.Data 。.SqlClient.SqlConection'”

回答

18

你不能使用的配置从连接管理器从脚本任务内部等: conectionManager1.exceuteSQLStatment(...)

一旦你的“内部”的脚本任务,你需要访问CM像变量:

ConnectionManager cm; 
System.Data.SqlClient.SqlConnection sqlConn; 
System.Data.SqlClient.SqlCommand sqlComm; 

cm = Dts.Connections["conectionManager1"]; 

sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction); 
sqlComm = new System.Data.SqlClient.SqlCommand("your SQL Command", sqlConn); 
sqlComm.ExecuteNonQuery(); 

cm.ReleaseConnection(sqlConn); 
+0

如果我想获得一个值(在我的情况,我试图让一个DateTime)出来的sqlComm,我会只使用类似于:DbDataReader reader = sqlComm.ExecuteReader() - 然后循环通过什么出来? – NealR 2012-08-08 15:28:07

+2

是的,就像你会在C#上做的一样 – Diego 2012-08-08 15:39:51

+2

通过更改从OLEDB到ADO.Net的数据库连接,上面列出的代码为我工作。 – Tequila 2013-06-28 13:50:46