Как использовать переменные в C# для цикла SSIS ForEach - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать переменную (FilePath) для направления скрипта в новый файл для каждого l oop контейнера.

Я пытаюсь решить проблему с серией файлов CSV, которые будут поступать ежедневно.

public void Main()
        {

                System.IO.StreamReader sr = new System.IO.StreamReader(@"T:\SomeLocation\SomeFile.csv");
                string str1 = (char)34 + "," + (char)34;
                string str2 = (char)34 + "|" + (char)34;
                string strContent = sr.ReadToEnd().Replace(str1, str2);
                sr.Close();
                sr.Dispose();


                System.IO.StreamWriter sw = new System.IO.StreamWriter(@"T:\SomeLocation\SomeFile.csv", false);
                sw.Write(strContent);
                sw.Flush();
                sw.Close();
                sw.Dispose();


            Dts.TaskResult = (int)ScriptResults.Success;
        }

1 Ответ

0 голосов
/ 26 марта 2020

В вашей ScriptTask у вас есть переменные только для чтения и чтения и записи, вы должны объявить свои переменные в соответствующей области видимости в зависимости от ваших потребностей (задача / пакет), и вы сможете использовать их внутри задачи сценария, получая доступ " Коллекция Dts.variables, например: Предположим, я создал переменную с именем CustomerCount , доступ к которой можно получить с помощью Dts.Variables ["CustomerCount"]. Значение , проверьте приведенный ниже пример:

public class ScriptMain  
{  
    public void Main()  
    {  
        int customerCount;  
        int maxRecordCount;  
        if (Dts.Variables.Contains("CustomerCount")==true&&Dts.Variables.Contains("MaxRecordCount")==true)  

        {  
            customerCount = (int) Dts.Variables["CustomerCount"].Value;  
            maxRecordCount = (int) Dts.Variables["MaxRecordCount"].Value;  
        }  

        if (customerCount>maxRecordCount)  
        {  
            Dts.TaskResult = (int)ScriptResults.Failure;  
        }  
        else  
        {  
            Dts.TaskResult = (int)ScriptResults.Success;  
        }  
    }  
}

проверка как использовать переменные в c# для ssis foreach l oop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...