簡體   English   中英

從C#腳本任務中使用SSIS ADO.NET連接時出錯

[英]Error when Utilizing SSIS ADO.NET Connection from within C# Script Task

我收到錯誤消息“連接未關閉。連接的當前狀態為打開”。 執行conn.Open(); 我的SSIS包中C#腳本任務中以下塊中的命令。 在Googling中,我看到其他人說這可能是由於try / catch而不導致conn.Close(); ,但是在完成后不應該using為我配置連接嗎?

bool fileRecordExists;
using (SqlConnection conn = (SqlConnection)Dts.Connections["connectionName"].AcquireConnection(Dts.Transaction))
{
    SqlCommand sqlCmd = new SqlCommand(queryString, conn);
    conn.Open();
    fileRecordExists = (int)sqlCmd.ExecuteScalar() > 0 ? true : false;
}

SSIS為您打開連接。 我通常做的對與錯是使用連接字符串創建一個新的連接,該連接字符串的獲取與獲取活動連接的方式非常相似。

有時,我還使用了AcquireConnection方法,但是沒有在腳本中打開或關閉連接。

這會有所幫助。 連接對象是ADO.NET數據提供程序的一部分,並且是與數據源的唯一會話。 連接對象正在處理C#應用程序(任務)與數據源之間的物理通信部分。

連接對象將連接到指定的數據源,並打開C#應用程序和數據源之間的連接,具體取決於連接字符串中指定的參數。 建立連接后,SQL命令將在連接對象的幫助下執行並檢索或操作數據源中的數據。

數據庫活動結束后,應關閉連接並釋放數據源資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM