Udostępnij za pośrednictwem


Właściwość DtsEventHandlerEnumerator.Current

Pobiera bieżący element kolekcja.

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

Składnia

'Deklaracja
Public ReadOnly Property Current As DtsEventHandler
    Get
'Użycie
Dim instance As DtsEventHandlerEnumerator
Dim value As DtsEventHandler

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

Wartość właściwości

Typ: Microsoft.SqlServer.Dts.Runtime.DtsEventHandler
Bieżący element kolekcja.

Uwagi

Po utworzeniu moduł wyliczający lub po wywołaniu zresetować metody, MoveNext metoda musi zostać wywołana, aby przejść do pierwszego elementu kolekcja przed odczytywania wartości moduł wyliczający Current właściwość; w przeciwnym razie Current jest niezdefiniowany i zgłasza 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.Jeśli kolekcja jest zmodyfikowany między wywołania MoveNext i Current, Current zwraca element, który jest zestaw , nawet jeśli moduł wyliczający został unieważniony.

Przykłady

Poniższy przykładowy kod tworzy dwa zdarzenie obsługi pakiet.Dla jednego obsługa zdarzeń, dodawane są dwa zadania.Następnie DtsEventHandlerEnumerator jest tworzony i używany Current i MoveNext metod nawigacji przez kolekcja.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.SendMailTask;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;

namespace DtsEventHandler_API
{
    class Program
    {
        static void Main(string[] args)
        {
            Package pkg = new Package();

            // Set up a DtsEventHandler for the OnError event of the package.
            DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError");
            DtsEventHandler dtsEHW = (DtsEventHandler)pkg.EventHandlers.Add("OnWarning");

            // When an OnError Event occurs, the Executables collection contains
            // the items to run. For this example, there will be a SendMailtTask
            // and a BulkInsertTask with a precedence constraint between them.
            Executable dtsEH1 = dtsEHOE.Executables.Add("STOCK:SendMailTask");
            TaskHost th = (TaskHost)dtsEH1;
            SendMailTask smTask = (SendMailTask)th.InnerObject;
            smTask.Subject = "Send Mail task";
            
            // Add a second executable to the DtsEventHandler.
            Executable dtsEH2 = dtsEHOE.Executables.Add("STOCK:BulkInsertTask");
            TaskHost th2 = (TaskHost)dtsEH2;

            //Create the Enumerator. Since we added the DtsEventhandler to the 
            // package, then that's where to get the EventHandlers collection.
            DtsEventHandlerEnumerator myEnum = pkg.EventHandlers.GetEnumerator();
            Console.WriteLine("The collection contains the following values:");
            int i = 0;
            while ((myEnum.MoveNext()) && (myEnum.Current != null))
                Console.WriteLine("[{0}] {1}", i++, myEnum.Current.Name);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.SendMailTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
 
Namespace DtsEventHandler_API
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim pkg As Package =  New Package() 
 
            ' Set up a DtsEventHandler for the OnError event of the package.
            Dim dtsEHOE As DtsEventHandler = CType(pkg.EventHandlers.Add("OnError"), DtsEventHandler)
            Dim dtsEHW As DtsEventHandler = CType(pkg.EventHandlers.Add("OnWarning"), DtsEventHandler)
 
            ' When an OnError Event occurs, the Executables collection contains
            ' the items to run. For this example, there will be a SendMailtTask
            ' and a BulkInsertTask with a precedence constraint between them.
            Dim dtsEH1 As Executable =  dtsEHOE.Executables.Add("STOCK:SendMailTask") 
            Dim th As TaskHost = CType(dtsEH1, TaskHost)
            Dim smTask As SendMailTask = CType(th.InnerObject, SendMailTask)
            smTask.Subject = "Send Mail task"
 
            ' Add a second executable to the DtsEventHandler.
            Dim dtsEH2 As Executable =  dtsEHOE.Executables.Add("STOCK:BulkInsertTask") 
            Dim th2 As TaskHost = CType(dtsEH2, TaskHost)
 
            'Create the Enumerator. Since we added the DtsEventhandler to the 
            ' package, then that's where to get the EventHandlers collection.
            Dim myEnum As DtsEventHandlerEnumerator =  pkg.EventHandlers.GetEnumerator() 
            Console.WriteLine("The collection contains the following values:")
            Dim i As Integer =  0 
            While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)
            Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
            End While
        End Sub
    End Class
End Namespace

Przykładowe dane wyjściowe:

Kolekcja zawiera następujące wartości:

OnError [0]

[1] OnWarning