web-dev-qa-db-ja.com

SSISのスクリプトタスク内のSQLデータベースに接続する

SSISのスクリプトタスクの内部で、SQLデータベースを呼び出す必要があります。データベースをデータソースフォルダーに追加したときに作成された接続文字列がありますが、C#コード内でそれを参照する方法がわかりません。 ASPウェブサイトの背後にあるコードでこれを行う方法を知っていますが、SSISにはより直接的な方法があるはずです。

編集

このコード行は、実際には例外をスローします:

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

「タイプ 'System._ComObject'のCOMオブジェクトをクラスタイプ 'System.Data.SqlClient.SqlConection。'にキャストできません。」

15
NealR

次のようなスクリプトタスク内から接続マネージャーの構成を使用することはできません: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);
21
Diego