2012-08-08 78 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