Udostępnij za pośrednictwem


Właściwość VariableEnumerator.Current

Pobiera bieżący Variable obiekt z kolekcja.

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Runtime
Zestaw:  Microsoft.SqlServer.ManagedDTS (w Microsoft.SqlServer.ManagedDTS.dll)

Składnia

'Deklaracja
Public ReadOnly Property Current As Variable
    Get
'Użycie
Dim instance As VariableEnumerator
Dim value As Variable

value = instance.Current
public Variable Current { get; }
public:
property Variable^ Current {
    Variable^ get ();
}
member Current : Variable
function get Current () : Variable

Wartość właściwości

Typ: Microsoft.SqlServer.Dts.Runtime.Variable
Bieżący Variable obiektu.

Uwagi

Po utworzeniu moduł wyliczający lub po wywołaniu zresetować metody, MoveNext metoda musi zostać wywołana, aby przejść do pierwszego elementu kolekcja modułu wyliczającego, zanim modułu wyliczającego można odczytać wartości Current właściwość; w przeciwnym razie Current jest niezdefiniowany i wyjątek.

Currentrównież zgłasza wyjątek, jeśli wywołanie ostatniego MoveNext zwracane false, które wskazuje koniec kolekcja.

Currentnie przenosi pozycja modułu wyliczającego i kolejne wywołania Current zwracają ten sam obiekt, aż do MoveNext lub zresetować jest wywoływana.

Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniony.Jeśli zmiany zostaną wprowadzone do kolekcja, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest unieważniona i staje się odzyskane; Dlatego kolejne wywołanie MoveNext lub zresetować generuje InvalidOperationException.Jednak jeśli od modyfikacji kolekcja między wywołaniami MoveNext i Current, Current zwraca element, który jest zestaw , nawet jeśli moduł wyliczający został unieważniony.

Przykłady

Poniższy przykład kodu dodaje zmienną do pakiet.Przykład kodu używa różnych metod do zlokalizowania zmiennej i wydrukować nazwę, wartość i obszaru nazw.

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

Przykładowe dane wyjściowe:

Znaleziono zmiennej?Prawda

Zmienna: myCustomVar 3

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

myCustomVar [0], użytkownika

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

Nazwa i nazw Pierwsza zmienna jest: AnulujZdarzenie, System

Nazwa zmiennej pierwszy jest: AnulujZdarzenie