언어

VariableEnumerator.Current 속성

정의

컬렉션에서 현재 Variable 객체를 가져옵니다.

public:
 property Microsoft::SqlServer::Dts::Runtime::Variable ^ Current { Microsoft::SqlServer::Dts::Runtime::Variable ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.Variable Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.Variable
Public ReadOnly Property Current As Variable

속성 값

현재 Variable 개체입니다.

예제

다음 코드 예시는 패키지에 변수를 추가합니다. 코드 예시는 변수를 찾고 이름, 값, 네임스페이스를 출력하는 다양한 방법을 사용합니다.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  
namespace Adding_Variables  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Application app = new Application();  
            // Load a sample package that contains a variable that sets the File Name.  
            Package pkg = app.LoadPackage(@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx", null);  
            Variables pkgVars = pkg.Variables;  
            Variable myVar = pkg.Variables.Add("myCustomVar", false, "User", "3");  

            // See if the variable is in the collection now.  
            Boolean hasMyVar = pkg.Variables.Contains("myCustomVar");  
            Console.WriteLine("The variable was found? {0}", hasMyVar);  

            // Loop over the collection using foreach keyword.  
            foreach (Variable pkgVar in pkgVars)  
            {  
                // Only print variables from the User namespace.  
                if (pkgVar.Namespace == "User")  
                {  
                Console.WriteLine("Variable: {0}, {1}", pkgVar.Name, pkgVar.Value.ToString());  
                 }  
            }  
            Console.WriteLine("---------------------------");  
            // Loop over the collection using the Enumerator.   
            VariableEnumerator myEnum = pkg.Variables.GetEnumerator();  
            int i = 0;  
            while ((myEnum.MoveNext()) && (myEnum.Current != null))  
                // Again only show User namespace variables.  
                if (myEnum.Current.Namespace == "User")  
                {                  
                    Console.WriteLine("[{0}] {1}, {2}", i++, myEnum.Current.Name, myEnum.Current.Namespace);  
                }  

            myEnum.Reset();  
            Console.WriteLine("---------------------------");  

            //Using the Item method syntax of [x], obtain the  
            // first entry in the collection.  
            myVar = pkgVars[0];  
            Console.WriteLine("The name and namespace of the first variable is: {0}, {1}", myVar.Name, myVar.Namespace);  
            String nameOfFirstItem = pkgVars[0].Name;  
            Console.WriteLine("The name of the first variable is: {0}", nameOfFirstItem);  
            //}  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Adding_Variables  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim app As Application =  New Application()   
            ' Load a sample package that contains a variable that sets the File Name.  
            Dim pkg As Package =  app.LoadPackage("C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx",Nothing)   
            Dim pkgVars As Variables =  pkg.Variables   
            Dim myVar As Variable =  pkg.Variables.Add("myCustomVar",False,"User","3")   

            ' See if the variable is in the collection now.  
            Dim hasMyVar As Boolean =  pkg.Variables.Contains("myCustomVar")   
            Console.WriteLine("The variable was found? {0}", hasMyVar)  

            ' Loop over the collection using foreach keyword.  
            Dim pkgVar As Variable  
            For Each pkgVar In pkgVars  
                ' Only print variables from the User namespace.  
                If pkgVar.Namespace = "User" Then  
                Console.WriteLine("Variable: {0}, {1}", pkgVar.Name, pkgVar.Value.ToString())  
                End If  
            Next  
            Console.WriteLine("---------------------------")  
            ' Loop over the collection using the Enumerator.   
            Dim myEnum As VariableEnumerator =  pkg.Variables.GetEnumerator()   
            Dim i As Integer =  0   
            While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)  
                    Console.WriteLine("[{0}] {1}, {2}",i = Console.WriteLine("[{0}] {1}, {2}",i + 1  
            End While  

            myEnum.Reset()  
            Console.WriteLine("---------------------------")  

            'Using the Item method syntax of [x], obtain the  
            ' first entry in the collection.  
            myVar = pkgVars(0)  
            Console.WriteLine("The name and namespace of the first variable is: {0}, {1}", myVar.Name, myVar.Namespace)  
            Dim nameOfFirstItem As String =  pkgVars(0).Name   
            Console.WriteLine("The name of the first variable is: {0}", nameOfFirstItem)  
            '}  
        End Sub  
    End Class  
End Namespace  

샘플 출력:

변수가 발견되었나요? True

변수: myCustomVar, 3

---------------------------

[0] myCustomVar, 사용자

---------------------------

첫 변수의 이름과 네임스페이스는 다음과 같습니다: CancelEvent, System입니다

첫 번째 변수의 이름은 CancelEvent입니다

설명

열거자가 생성되거나 메서드를 Reset 호출한 후에는, MoveNext 열거자가 속성의 Current 값을 읽기 전에 집합의 첫 번째 요소로 열거자를 진행하기 위해 메서드를 호출해야 합니다; 그렇지 않으면 는 Current 정의되지 않았으며 예외가 던집니다.

Current는 컬렉션의 끝을 나타내는 반환MoveNextfalse 마지막 호출인 경우 예외를 throw합니다.

Current에서는 열거자의 위치를 이동하지 않으며, 같은 개체를 호출하거나 Current 호출할 때까지 MoveNext 동일한 개체를 반환하는 Reset 연속 호출이 수행됩니다.

컬렉션이 변경되지 않은 상태로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 컬렉션에 요소를 추가, 수정, 삭제하는 등 변경이 이루어지면, 열거기는 무효화되어 복구 불가능해집니다; 따라서 다음 호출 MoveNextReset 은 또는 를 던집니다 InvalidOperationException. 그러나 집합이 호출 MoveNextCurrent사이에 수정되면, Current 열거기가 무효화되었더라도 집합이 설정된 원소를 반환합니다.

적용 대상