Как получить доступ к существующему ADO.NET Connection Manager в компоненте сценария потока данных - PullRequest
2 голосов
/ 29 марта 2019

Я хочу выполнить инструкцию 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 Ответ

2 голосов
/ 29 марта 2019

Вы добавили ссылку на диспетчер соединений в компонент Script? Это можно сделать, добавив диспетчер соединений 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);
}
...