Как получить доступ к существующему ADO.NET Менеджер соединений в компоненте сценария потока данных

#c# #sql-server #ssis #etl #script-component

#c# #sql-сервер #ssis #etl #скрипт-компонент

Вопрос:

Я хочу выполнить инструкцию SQL для каждой строки в моем потоке данных, поэтому я использую компонент скрипта (не задачу скрипта) в потоке данных. Я пробовал код, подобный приведенному ниже, но он не компилируется.

 using (SqlConnection connection = this.Connections.Connection.AcquireConnection(null) as SqlConnection)
{
    using (SqlCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT [Value] FROM dbo.MyTable";
        command.CommandType = CommandType.Text;

        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                ProfanityWords.Add(reader.GetValue(0).ToString());
            }
        }
    }

    this.Connections.Connection.ReleaseConnection(connection);
}
  

Ответ №1:

Вы добавили ссылку на диспетчер соединений в компоненте скрипта? Это можно сделать, добавив ADO.NET диспетчер подключений на вкладке «Менеджеры подключений» компонента скрипта. После этого к нему можно получить доступ следующим образом. Приведенный ниже пример представляет собой измененную версию вашего кода, с MyConnection именем, присвоенным менеджеру подключений в графическом интерфейсе компонента скрипта.

 using (SqlConnection connection = this.Connections.MyConnection.AcquireConnection(null) as SqlConnection)
{
    using (SqlCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT [Value] FROM dbo.MyTable";
        command.CommandType = CommandType.Text;

        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                ProfanityWords.Add(reader.GetValue(0).ToString());
            }
        }
    }

    this.Connections.MyConnection.ReleaseConnection(connection);
}
  

Комментарии:

1. О, прошу прощения. Я не заметил вкладку «Менеджеры подключений». Большое вам спасибо!